CentOS 5.x升级glibc到2.7
由于安装软件提示需要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启动. 替换系统文件来修复. 请慎重. ###################################################################################################################################################
######################### 编译glibc2.7 ###################################################################################################
###################################################################################################################################################
http://jacklin9.spaces.live.com/blog/cns!A891B52E1182AFB2!346.entry
http://blog.sina.com.cn/s/blog_48eef8410100ap22.html
下载glibc
wgethttp://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/pub/archive/fedora/linux/releases/8/Everything/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位的动态库。 有些软件可能要求系统的 Glibc 高于某个版本才可以正常运行。如果您的 Glibc 低于要求的版本,为了运行这些软件,您就不得不升级您的 Glibc 了 。您可以寻找已经编译好的 rpm 包或者使用源代码的方式升级 Glibc。
下载glibc
wgethttp://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
页:
[1]