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可用。
解決方法:
- ls命令雖然不能用,但是可以用ls /lib64/libc + Tab鍵(或者ls /lib/libc + Tab鍵),查看到/lib64 和 /lib 目錄下的libc相關的庫名稱,當前爲libc-2.12.so和libc-2.5.so。
- 安裝程序時,更新libc一般是將老的替換成新的,因此推測是新的在此係統不可用,使用老的libc-2.5.so。
- 在當前環境中提前加載可用的動態庫/lib64/libc-2.12.so,如果加載的libc庫可用,加載後linux命令就可用了。
- linux命令可以後,刪除/lib/libc.so.6軟連接。
- 創建軟鏈接/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