lib64下libc.so.6被删后导致系统无法使用的原因及解决方法

在误删除命令时千万不要关闭终端哦,就在当前终端敲命令

1:无法寻址到软连接,命令搜素动态连接libc-2.5.so

ldconfig -l -v /lib64/libc-2.5.so  这里写的libc库必须是原来使用的而不是你更新过的
2:做libc.so.6软连

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

LD_PRELOAD允许你定义在程序运行前优先加载的动态链接库,因此在使用ln前就加载了lib库,而不是等到使用ln时加载,这样就能临时使用命令了
不仅仅是ln,只要加了LD_PRELOAD=/lib64/libc-2.5.so,后面可以跟一切因为libc.so.6被删不能用的命令          

3:例如我一开始不是误删,只是把libc.so.6改名了,从而也导致了上面的错误,于是就可以按照下面方法恢复libc.so.6

LD_PRELOAD=/lib64/libc-2.17.so mv /lib64/libc.so.6.bak /lib64/libc.so.6

4:重新开窗口,命令就能使用了。

5:可以看到现在libc.so.6是软连接到libc-2.12.so的,最开始是连接到libc-2.5.so的。

ls -l /lib64/ |grep libc

6:查看glibc支持的版本

 strings /lib64/libc.so.6 |grep GLIBC_

猜你喜欢

转载自www.cnblogs.com/syy714363310/p/12202323.html