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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章