LINUX 修復relocation error: /lib/tls/libc.so.6


錯誤信息:

relocation error: /lib/tls/libc.so.6: symbol _dl_tls_get_addr_soft, version GLIBC_PRIVATE not defined in file ld-linux.so.2 with link time reference.

 

網上的大多數方法都是回復g

核心解決方法:

export LD_PRELOAD=/lib/tls/libc-2.3.6.so    ## 我這台機器上沒有libc-2.** 等文件

我的解決方法是 

export LD_PRELOAD=/etc/lg.so.cache     ##這個文件是從其他型號上copy過來的,出問題的機器已經被污染了

解決方法原因參考:

  1. libc.so.6 c運行時庫 glibc的軟鏈接,而系統幾乎所有程序都依賴c運行時庫。程序啟動和運行時,是根據libc.so.6 軟鏈接找到glibc庫。刪除libc.so.6將導致系統的幾乎所有程序不能工作。
  2. 每個glibc.so文件有它支持的libc版本,可以通過# strings /lib64/libc.so.6 |grep GLIBC_ 查看。如果程序編譯的時候鏈接的libc庫版本不在程序運行環境下的glibc庫支持的libc版本之內,也會報錯.

  strings 方法列出了libc.so.6加載的順序

相關下載文件地址:

http://ftp.gnu.org/gnu/glibc/

https://centos.pkgs.org/6/centos-updates-x86_64/glibc-2.12-1.209.el6_9.2.x86_64.rpm.html

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM