天天看点

glibc2.12升级至2.14

升级glibc2.12—>2.14遇到的问题。

安装gblic2.14后,软链接从/lib64/libc.so.6->/lib64/libc-2.12.so修改为/lib64/libc.so.6->/home/hadoop/workspace/glibc2.14/lib/libc-2.14.so.

rm -rf /lib64/libc.so.6 
ln -s /home/hadoop/workspace/glibc2.14/lib/libc-2.14.so  /lib64/libc.so.6
           
LD_PRELOAD=/home/hadoop/workspace/glibc2.14/lib/libc-2.14.so ln -s /home/hadoop/workspace/glibc2.14/lib/libc-2.14.so  /lib64/libc.so.6

LD_PRELOAD=/lib64/libc-2.12.so ln -s /lib64/libc-2.12.so /lib64/libc.so.6 
           

之后ssh连接不了,报错内容:

ssh_exchange_identification: Connection closed by remote host.

重启后不能进入系统,报错如下:

terminated with status 127

prefdm main process ended,respawning

尝试进入救援模式,制作u盘启动工具,重启服务器,选择resecure install system:

一步一步进去后,会进入bash shell,然后chroot /mnt/sysimage,切换回sh shell即可

尝试方法1:重新链接回libc-2.12.so,系统可以重启,恢复至之前的状态。

centos6.7 进入Rescue install system 
chroot /mnt/sysimage

rm /lib64/libc.so.6
LD_PRELOAD=/lib64/libc-2.12.so ln -s /lib64/libc-2.12.so /lib64/libc.so.6 
           

尝试方法二,在/root/目录下安装glibc-2.14,即不会出现不能重启的现象。

#解压并安装
tar -zxvf glibc-2.14.tar.gz
mkdir build && cd build
../configure --prefix=/opt/glibc-2.14
make 
make localedata/install-locales
make install 

#修改/lib64/libc.so.6
mv  /lib64/libc.so.6 /lib64/libc.so.6.bak
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

#查看是否链接成功

ll /lib64/libc**
reboot
           

继续阅读