Linux

幾乎沒有命令工作 - 重定位錯誤:符號 __getrlimit,版本 GLIBC_PRIVATE 未在 libc.so.6 中定義

  • August 4, 2021

我通過 SSH 連接到我沒有 root 訪問權限的機器。要安裝一些我從我的機器上傳的庫並將它們放在~/lib遠端主機的目錄中。

現在,對於我執行的幾乎所有命令,我都會收到以下錯誤(例如 for ls)或一條Segmentation fault (core dumped)消息。

ls: relocation error: /lib/libpthread.so.0: symbol __getrlimit, version 
GLIBC_PRIVATE not defined in file libc.so.6 with link time reference

我成功執行的唯一命令是cd直到現在pwd。我幾乎可以通過使用 TAB 來自動完成在目錄中找到文件ls,因此我可以在目錄中移動。

uname -r也返回Segmentation fault (core dumped)消息,所以我不確定我使用的是什麼核心版本。

由於您可以登錄,因此沒有任何重大問題;大概是您的 shell 的啟動腳本添加~/libLD_LIBRARY_PATH, 以及 中的壞庫~/lib,是導致您看到的問題的原因。

要解決此問題,請執行

unset LD_LIBRARY_PATH

這將允許您執行rmvim以刪除麻煩的庫並在適當的情況下編輯您的啟動腳本。

問題是您已將副本glibc放入您的~/lib目錄,並且該庫與您上傳到的系統不兼容。正在引用該庫,~/lib$LD_LIBRARY_PATH.

要臨時解決此問題,只需unset LD_LIBRARY_PATH- 這將像unset內置的 shell 一樣工作。然後,您將能夠執行您最喜歡的文本編輯器,以刪除啟動文件中首先設置變數的任何內容。

引用自:https://unix.stackexchange.com/questions/367597