1、查看系统glibc支持的版本

# strings /lib64/libc.so.6 |grep GLIBC
# rpm -qa | grep glibc

2、升级glibc支持的版本到GLIBC_2.14


官网地址 ➡️ ​https://links.jianshu.com/go?to=http%3A%2F%2Fwww.gnu.org%2Fsoftware%2Flibc%2F">​​http://www.gnu.org/software/libc/​​​ 官网所有安装包 ➡️ ​​http://ftp.gnu.org/gnu/glibc/​​​


# cd /usr/local
# wget http://ftp.gnu.org/gnu/libc/glibc-2.14.tar.xz
# tar -xvf glibc-2.14.tar.xz
# mkdir -p /var/VMdisks
# mv glibc-2.14 /var/VMdisks/
# cd /var/VMdisks/glibc-2.14/
# mkdir build && cd build/
# ../configure --prefix=/usr/local/glibc-2.14
# make -j4
# make install
--- 解决中文乱码问题
# make localedata/install-locales
临时修改环境变量
# export LD_LIBRARY_PATH=/usr/local/glibc-2.14/lib:$LD_LIBRARY_PATH
# echo $LD_LIBRARY_PATH
修改/lib64/libc.so.6的软链接来源,由之前的libc-2.12.so修改为libc-2.14.so
# cd /lib64
# ll libc.so.6
# ll /usr/local/glibc-2.14/lib/libc-2.14.so
# cp /usr/local/glibc-2.14/lib/libc-2.14.so /lib64/
# unlink /lib64/libc.so.6

如果上面删除命令执行后,导致该机器的很多shell命令无法执行!甚至于机器无法登陆!报错如下:

​error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory​

注意:千万不要关闭当前的终端窗口,因为此时机器可能无法登陆了。只能在当前终端窗口下进行紧急修复:

# ldconfig
然后做/lib64/libc.so.6新的软链接,软链接到libc-2.14.so
# ln -s libc-2.14.so /lib64/libc.so.6
# ll libc.so.6
--- 查看系统glibc支持的版本
# strings /lib64/libc.so.6 |grep GLIBC

3、升级glibc挂了后可以救命的命令

如果实在不幸,在升级glibc时挂掉了,执行各种命令都提示错误,比如:


  • ​Segmentation fault​
  • ​error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory​这类错误出现千万不要着急退出SSH,执行下面的命令是可以挽救的:

# cd /lib64
# LD_PRELOAD=/lib64/libc-2.12.so ln -sf /lib64/libc-2.12.so libc.so.6
Tips:​​libc-2.12.so​​这个文件名根据你系统中的文件而定,如果有多个版本so文件可以逐个尝试