由於符號鏈結錯誤而破壞了大多數 Linux 計算機功能

由於符號鏈結錯誤而破壞了大多數 Linux 計算機功能

我使用的是 64 位元 Crunchbang,它是基於 Debian 的。

我試圖解決 libc6 的某個問題,並天真地遵循了 askUbuntu 答案的建議(關聯)這讓我運行以下命令:

sudo ln -sf /lib32/libc.so.6 /lib/x86_64-linux-gnu/libc.so.6

現在我無法運行單一終端命令或 GUI 程式。在終端上我收到大量錯誤。ls例如,這裡是:

ls:載入共用函式庫時發生錯誤:libs.so.6:錯誤的 ELF 類別:ELFCLASS32

sed:載入共用函式庫時發生錯誤:libs.so.6:錯誤的 ELF 類別:ELFCLASS32

/usr/bin/env:載入共用函式庫時發生錯誤:libs.so.6:錯誤的 ELF 類別:ELFCLASS32

日期:載入共用函式庫時發生錯誤:libs.so.6:錯誤的 ELF 類別:ELFCLASS32

sed:載入共用函式庫時發生錯誤:libs.so.6:錯誤的 ELF 類別:ELFCLASS32

GUI 程式根本不會啟動或給我奇怪的錯誤訊息。

簡而言之,我無法刪除導致這場災難的符號連結。我該怎麼做才能讓我的計算機重新運作?

答案1

/lib32 資料夾只能包含 32 位元庫。您在 /lib32 中創建了 libc.so.6 的鏈接,該鏈接指向同一文件的 64 位元版本。取得 32 位元版本的 libc.so.6 並將其放置在 /lib32 資料夾中。

答案2

由於您已經弄亂了libc 並且通常每個有用的實用程式都依賴它,因此您唯一真正方便的選擇是啟動Live CD / USB 並修復它,或者將您的硬碟插入其他人的電腦中(不要啟動它)並從那裡修復它。

要修復它,請撤消您所做的事情。

但是,您-f對選項的錯誤選擇ln以及假定無法備份任何原始文件意味著,如果/lib/x86_64-linux-gnu/libc.so.6在您執行該命令之前實際存在該文件,則它會被覆蓋。在這種情況下,最好的選擇是從其他地方獲取副本,希望是相容版本,然後在機器再次運行後強制重新安裝 libc,以確保正確檔案的所有正確版本都在正確的地方。

如果您一開始就沒有該文件,那麼不用擔心。

清理完這一切後,請考慮嘗試針對您的問題嘗試風險較小的解決方案,例如為您的平台揭開並安裝正確的軟體包等,而不是使用關鍵庫的符號連結。

相關內容