很多软件写着只支持Centos7而不支持Centos6,很大的原因就是因为要求的glibc版本大于2.12(Centos6内置的最高版本),所以这就很尴尬。其实如果解决了glibc的版本问题,很多情况下这些Centos7 Only的程序都是能够正常跑在Centos6上的。
那么,很多人就觉得,既然yum没有高版本的,那我就自己编译呗,我曾经也这么想过……然后,结果比较蛋疼,我成功的陷入了僵局,旧版本的glibc没了,新版本的还不能用,然后整个系统没几个命令可以用,连关机重启都不行,想恢复旧版本的glibc又没办法,只能重装系统。
所以我在这儿给两个办法,一个是rpm的,不过只是2.14版本,大部分情况下够用。还有一个是编译的方法, 不过是借鉴了别人的,考虑的略为全面点,能在失败的情况下救回来。
首先,我们可以用下面几种办法来查看当前glibc版本
strings /lib64/libc.so.6 |grep GLIBC ldd --version rpm -qa|grep glibc
很明显我们能看到当前版本是2.12,Centos6不额外更新就万年这样了……毕竟疯狂backport,后面序列号都192了_(:з」∠)_
首先请务必考虑清楚,你是不是有不升级系统(Centos7)且必须更新glibc的理由
①.RPM大法,这儿需要注意的是rpm安装必须一起装,不然好像会出现奇怪的冲突问题,如果还是遇到了可以试试加--force来强制升级
wget http://down.senra.me/RPM/glibc-common-2.15-60.el6.x86_64.rpm wget http://down.senra.me/RPM/glibc-2.15-60.el6.x86_64.rpm wget http://down.senra.me/RPM/glibc-headers-2.15-60.el6.x86_64.rpm wget http://down.senra.me/RPM/glibc-devel-2.15-60.el6.x86_64.rpm rpm -Uvh glibc-2.15-60.el6.x86_64.rpm \ glibc-common-2.15-60.el6.x86_64.rpm \ glibc-devel-2.15-60.el6.x86_64.rpm \ glibc-headers-2.15-60.el6.x86_64.rpm
②.常规的编译安装
cd /opt wget http://ftp.gnu.org/gnu/glibc/glibc-2.14.tar.gz tar -xzvf glibc-2.14.tar.gz mv glibc-2.14 glibc-2.14-build cd glibc-2.14-build mkdir build cd build ../configure --prefix=/opt/glibc-2.14 make && make install rm /lib64/libc.so.6 //请注意不要加-rf,因为这儿只是要删除软链接,不然出问题没得救了 ln -s /opt/glibc-2.14/lib/libc-2.14.so /lib64/libc.so.6
正常情况下这儿已经可以了,如果出问题请参照下方
//这个是在你删除软链接后无法使用ln命令的情况下预载动态库然后执行命令 LD_PRELOAD=/opt/glibc-2.14/lib/libc-2.14.so ln -s /opt/glibc-2.14/lib/libc-2.14.so /lib64/libc.so.6 //libc-2.12.so是旧版本的库,这儿是用于失败还原的,正常的话不用运行 LD_PRELOAD=/lib64/libc-2.12.so ln -s /lib64/libc-2.12.so /lib64/libc.so.6
到这儿一切都OK了,重新运行上方查看版本的命令,你会发现多出了glibc的2.14版本,运行之前不能运行的软件也没问题了
文章评论