linux升级glibc2.5 到2.6、2.7、2.8、2.9

本次的操作系统是asian linux: linux 2.6.18-238.2.AXS3 #1 x86_64 GNU/Linux

之前参考了网上很多的升级方法,到最后安装手工替换/lib64/libc.so.6 指向的旧版本后,都是全部命令出现 “段错误”,手工替换so库文件的方式不可取。

下载安装包,网址:

http://mirrors.nju.edu.cn/gnu/libc/ (速度快)

http://ftp.gnu.org/gnu/glibc(速度慢)

此处下载三个tar.gz包到指定目录software

cd software

tar xf glibc-2.6.tar.gz (解压)

tar -xzvf glibc-ports-2.6.tar.gz

tar -xzvf glibc-libidn-2.6.tar.gz

mv glibc-ports-2.6 glibc-2.6/ports

mv glibc-libidn-2.6 glibc-2.6/libidn

cd glibc-2.6

mkdir build (编译要求用单独的目录)

cd build

../configure --prefix=/usr (试了好几次,一定用这个路径后面才能安装成功,其它编译参数可以根据需要自行添加)

make (此处时间较长)

make install (执行此步前做好备份 /usr , lib/, lib64/ , bin/ , sbin/)

安装成功会显示:

Your new glibc installation seems to be OK

以上步骤在2.6,2.7, 2.8, 2.9版本升级均能成功。再高的版本编译报错:内核版本太低不支持

升级后的问题:

升级2.6版本后系统正常。

升级2.7及以上版本后,普通命令运行正常,但执行ssh、java等命令报“段错误”,日志可以在/var/log/message上看到。 原因暂不清楚,所以建议不要轻易升级glibc。

查看“段错误”报错原因:先执行 ulimint -c unlimited,再运行程序,会在运行目录产生core文件,采用“gdb core文件名 应用程序名”命令进行查看,不了解gdb用法的自行百度。

如果想在正式安装前先验证一下,以下方式可以参考,但有可能验证失败,正式安装却能成功。

#正式安装前,先试运行一下会不会报错。安装目录指定临时目录,能预先查看会安装什么

make install install_root=/data/glibc_build/system_fake_root

#验证

export LD_LIBRARY_PATH=/data/glibc_build/system_fake_root/lib64

再执行要验证的程序

手工修改/lib64/libc.so.6指向新版本后,全部命令出现 “段错误”的回退办法:

网上有不少解决办法:

一是libc.so.6软链接重新指向到旧版本,ln命令此时用不了,要用sln,注意要用全路径:

/sbin/sln /lib64/libc-2.5.so /lib64/libc.so.6

另外一种方法(没有验证):

export LD_PRELOAD="/lib64/libc-2.5.so"

ln -s /lib64/libc-2.5.so /lib64/libc.so.6

以下文章有一些的参考意义

http://www.360doc.com/content/16/0607/09/6828497_565707419.shtml (可参考)

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值