linux下误删libc.so.6解决方法

linux下误删libc.so.6解决方法

参考网址:https://blog.csdn.net/ydyang1126/article/details/53424101


yum install安装了一个软件之后,发现用什么命令都不好使了。错误提示信息:

ls: error while loading shared libraries: /lib/libc.so.6: unexpected reloc type 0x25

【或者自己更新lib.c.so.6库时,执行了rm /lib/libc.so.6 -f 命令】。 
根据提示信息,推测是安装软件之后,libc.so.6被更新,链接到了新的libc库了。

此现象之前遇到过,ls、ps、mv、rm等命令都用不了了。 
幸好还有cd、export、ln可用。

解决方法:

  1. ls命令虽然不能用,但是可以用ls /lib64/libc + Tab键(或者ls /lib/libc + Tab键),查看到/lib64 和 /lib 目录下的libc相关的库名称,当前为libc-2.12.so和libc-2.5.so。
  2. 安装程序时,更新libc一般是将老的替换成新的,因此推测是新的在此系统不可用,使用老的libc-2.5.so。
  3. 在当前环境中提前加载可用的动态库/lib64/libc-2.12.so,如果加载的libc库可用,加载后linux命令就可用了。
  4. linux命令可以后,删除/lib/libc.so.6软连接。
  5. 创建软链接/lib/libc.so.6到可用的libc库。

操作如下:

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

猜你喜欢

转载自blog.csdn.net/a746742897/article/details/81591872