设为首页收藏本站

Discuz! Board

 找回密码
 注-册

QQ登录

只需一步,快速开始

搜索
查看: 7209|回复: 2

CentOS 5.x升级glibc到2.7

[复制链接]
发表于 2013-4-19 15:42:18 | 显示全部楼层 |阅读模式
由于安装软件提示需要Glibc2.7,
然后运行yum install glibc已经yum update glibc,不过之间检查仍然是rpm -qi glibc(2.5).
看来CentOS只升级到2.5了.因此不得不手动安装glibc2.7了.

这里是我安装的过程记录.

1.首先是找个目录(我找的是/root)来下在glibc2.7的源代码.

2.运行 wget http://ftp.gnu.org/pub/gnu/glibc/glibc-2.7.tar.gz来下在程序

3.下在后运行tar -xvf glibc-2.7.tar.gz来解压缩,程序会自动放到glibc-2.7目录下;为了编译方便创建一个临时目录glibc-build(这个目录与glibc-2.7同一级别)

4.进如glibc-build,并运行../glibc2.7/configure --prefix=/usr;注意后面的参数非常必要,/usr是系统安装的目录,替换系统的glibc.如果不替换,你可以设置/usr/local.

5.好了之后就可以在这个目录运行make了;make成功之后就是make install.

6.如果上面都成功了,可以重新启动shutdown -r "now"

系统重启之后,glibc-2.7已经工作了,不过rpm -qi glibc仍然是2.5(谁知道请告诉一声).

注意.手动升级glibc有风险. 可能会造成整个系统不能使用. 需要用livecd启动. 替换系统文件来修复. 请慎重.
 楼主| 发表于 2013-4-19 17:26:24 | 显示全部楼层
###################################################################################################################################################
#########################    编译glibc2.7    ###################################################################################################
###################################################################################################################################################

http://jacklin9.spaces.live.com/ ... E1182AFB2!346.entry

http://blog.sina.com.cn/s/blog_48eef8410100ap22.html




下载glibc
wget  http://ftp.gnu.org/gnu/glibc/glibc-2.7.tar.gz

下载glibc-linuxthreads
wget http://ftp.gnu.org/gnu/glibc/glibc-linuxthreads-2.5.tar.gz



解压
tar -zxvf glibc-2.7.tar.gz
mkdir glibc-build
cd glibc-2.7
tar -zxvf ../glibc-linuxthreads-2.7.tar.gz
cd ..
export CFLAGS="-g -O2 -march=i486"
cd glibc-build
../glibc-2.7/configure --prefix=/usr --disable-profile --enable-add-ons --with-headers=/usr/include --with-binutils=/usr/bin --disable-sanity-checks

#make
#make install



安装编译过程中需要注意三点:
1、要将glibc-linuxthreads解压到glibc目录下。
2、不能在glibc当前目录下运行configure。
3、加上优化开关,export CFLAGS="-g -O2 -march=i486",否则会出现错误
'#error "glibc cannot be compiled without optimization"'


###################################################################################################################################################
#########################    rpm 升级glibc2.7    ###########################################################################################
###################################################################################################################################################


因公司合作研发的游戏项目 德州扑克 要求,

Linux需要升级 glibc库要2.7以上,所以就尝试了下升级glibc。

由于找不到CentOS5的 glibc2.7 ,就在网上找到了fedora的rpm包来替代,试过暂时是没发现什么问题。以下是步骤。

这里下载相应的rpm包http://archive.fedoraproject.org ... x86_64/os/Packages/

由于我们目前linux都是64位系统,所以我下载4个x64文件:
glibc-common-2.7-2.x86_64.rpm
glibc-headers-2.7-2.x86_64.rpm
glibc-devel-2.7-2.x86_64.rpm
glibc-2.7-2.x86_64.rpm      

然后升级的命令为:
rpm -Uvh --aid --nodeps glibc-common-2.7-2.x86_64.rpm
rpm -Uvh --aid --nodeps glibc-headers-2.7-2.x86_64.rpm
rpm -Uvh --aid --nodeps glibc-devel-2.7-2.x86_64.rpm
rpm -Uvh --aid --nodeps glibc-2.7-2.x86_64.rpm

直接强制更新升级。

升级后好像glibc2.7自动生效了。

编译一个程序测试下是否使用了64位的动态库。

#vi hello.c

#include
int main(void)
{
              printf("Hello World!\n");
}

保存退出,然后执行
gcc -o test hello.c
chmod +x test
./test

运行成功!

执行
file test
查看有看到x64,表示使用 64位的动态库。





网上有些地方加优化开关 -O2  时(大写字母O),写的是 -02 (数字零),所以拷贝过来仍然出现3中的错误,所以请注意。

安装完后,可以查看ls -l /lib/libc.so.6已升级

lrwxrwxrwx 1 root root 11 Nov 12 09:24 /lib/libc.so.6 -> libc-2.7.so



测试:
32位:
vim hello.c
#include <stdio.h>

main()
{
     printf("hello world!\n");
}

保存退出,然后执行
gcc -o test hello.c
chmod +x test
./test

运行成功!

执行
file test

64位:
#vi hello.c

#include
int main(void)
{
              printf("Hello World!\n");
}

保存退出,然后执行
gcc -o test hello.c
chmod +x test
./test

运行成功!

执行
file test
查看有看到x64,表示使用 64位的动态库。
 楼主| 发表于 2013-4-19 17:27:26 | 显示全部楼层
有些软件可能要求系统的 Glibc 高于某个版本才可以正常运行。如果您的 Glibc 低于要求的版本,为了运行这些软件,您就不得不升级您的 Glibc 了 。您可以寻找已经编译好的 rpm 包或者使用源代码的方式升级 Glibc。

下载glibc
wget  http://ftp.gnu.org/gnu/glibc/glibc-2.7.tar.gz

下载glibc-linuxthreads
wget http://ftp.gnu.org/gnu/glibc/glibc-linuxthreads-2.5.tar.gz



解压
#tar -zxvf glibc-2.7.tar.gz
#cd glibc-2.7
#tar -zxvf ../glibc-linuxthreads-2.3.6.tar.gz
#cd ..
#export CFLAGS="-g -O2 -march=i486"
#./glibc-2.7/configure --prefix=/usr --disable-profile --enable-add-ons --with-headers=/usr/include --with-binutils=/usr/bin --disable-sanity-checks

#make
#make install



安装编译过程中需要注意三点:
1、要将glibc-linuxthreads解压到glibc目录下。
2、不能在glibc当前目录下运行configure。
3、加上优化开关,export CFLAGS="-g -O2 -march=i486",否则会出现错误
'#error "glibc cannot be compiled without optimization"'



网上有些地方加优化开关 -O2  时(大写字母O),写的是 -02 (数字零),所以拷贝过来仍然出现3中的错误,所以请注意。

安装完后,可以查看ls -l /lib/libc.so.6已升级

lrwxrwxrwx 1 root root 11 Nov 12 09:24 /lib/libc.so.6 -> libc-2.7.so
您需要登录后才可以回帖 登录 | 注-册

本版积分规则

小黑屋|手机版|Archiver|数码鹭岛 ( 闽ICP备05008334号 )  

counter

GMT+8, 2018-12-17 04:57 , Processed in 0.587314 second(s), 26 queries .

Powered by Discuz! X3

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表