錯誤信息:
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過來的,出問題的機器已經被污染了
解決方法原因參考:
libc.so.6 是c運行時庫 glibc的軟鏈接,而系統幾乎所有程序都依賴c運行時庫。程序啟動和運行時,是根據libc.so.6 軟鏈接找到glibc庫。刪除libc.so.6將導致系統的幾乎所有程序不能工作。
每個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