故障原因:
在高版本的环境中编译了一个软件,然而在低版本系统中无法使用,缺少libc.so支持,然而在编译过程中误删除了 libc.so.6的软连接,rm /lib64/libc.so.6
删除后发现系统好多命令都无法使用了,悲催!
[root@nagios libexec]# ls
ls: error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory
[root@nagios libexec]#
[root@nagios libexec]#
[root@nagios libexec]# ls
ls: error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory
[root@nagios libexec]#
[root@nagios libexec]#
[root@nagios libexec]# ping
ping: error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory
[root@nagios libexec]# sh
sh: error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory
[root@nagios libexec]# /bin/sh
/bin/sh: error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory
当时我的小心肝啊,都快绝望了操作环境还是正式环境,最后通过查找文档发现急救方案
让系统从新加载以便so执行以下命令
[root@nagios libexec]# ldconfig
重点!重点!重点!
其实重启系统也能解决,但当时是生产环境,很纠结的
在网上还看到如下方法,没有测试过,看原理应该是可以
[root@nagios libexec]#LD_PRELOAD=/lib/libc-2.6.1.so ln -s /lib/libc-2.6.1.so lib/libc.so.6
下面正好说说libc 版本升级方法
当下载的软件执行报以下错误,就需要升级libc
/lib64/libc.so.6: version `GLIBC_2.14' not found
查看系统现在支持的版本
[root@nagios libexec]#strings /lib64/libc.so.6 | grep GLIBC
下载需要升级的版本,注意高版本不一定支持低版系统,需要在官网确认好
[root@nagios tmp]#wget http://ftp.gnu.org/gnu/glibc/glibc-2.15.tar.gz
[root@nagios tmp]#tar -xvf glibc-2.15.tar.gz
[root@nagios glibc-2.15]#cd glibc-2.15
新建一个目录存储编译后的文件
[root@nagios glibc-2.15]#mkdir build
[root@nagios glibc-2.15]#cd build
配置,我们把安装文件单独放在其他地方,不放在系统位置,方便查找
[root@nagios build]# ../configure --prefix=/opt/glibc
[root@nagios build]#make -j4
[root@nagios build]#make install
把路径加入到环境变量中
[root@nagios build]#export LD_LIBRARY_PATH=/opt/glibc/lib:$LD_LIBRARY_PATH
然后可以测试应用,然而我的问题还是没有解决,从2.14安装到2.16,最后放弃了