libc.so.6软连接了一个错误的版本,导致ls,ll,mv命令都报错。
[root@ ~]# mv
mv: /lib64/libc.so.6: version `GLIBC_2.14' not found (required by /lib64/librt.so.1)
mv: /lib64/libc.so.6: version `GLIBC_2.14' not found (required by /lib64/libpthread.so.0)
因为替换文件操作的命令不能使用,瞬间感觉要奔溃~~~~
知道问题原因一定是替换libc.so.6导致的出错,所以准备重装glibc,重装不需要那些命令。
可是可是,居然安装命令也报错,妈呀,还让不让人活了。
[root@ tools]# ./configure
Segmentation fault
不抛弃不放弃的精神再次体现,搜大神们怎么解决!!!
不搜不知道一搜吓一跳,有戏。
解决libc.so.6被误删的方式,同样解决我的问题:
LD_PRELOAD允许你定义在程序运行前优先加载的动态链接库,因此在使用ln前就加载了lib库,而不是等到使用ln时加载,这样就能临时使用命令了,这样之前不能用的命名都可以使用了。
执行下面命令:
[root@ lib64]# LD_PRELOAD=/lib64/libc-2.15.so rm /lib64/libc.so.6
rm: remove symbolic link `/lib64/libc.so.6'? y
[root@ lib64]# LD_PRELOAD=/lib64/libc-2.15.so ln -s /lib64/libc-2.15.so /lib64/libc.so.6
测试正常,ok,搞定!