我最近不小心刪除了這個文件/lib/x86_64-linux-gnu/libc.so.6.
大多數程式都需要這個文件,所以我的電腦基本上壞了,我只能透過即時USB存取硬碟。
我正在運行 64 位元 Crunchbang Waldorf,它是基於 Debian 的。
我該如何更換libc.so.6
? (/lib64/
才不是包含副本。
輸出locate libc.so
(在即時 USB 上,安裝有損壞的硬碟)
/lib/x86_64-linux-gnu/libc.so.6
/rofs/lib/x86_64-linux-gnu/libc.so.6
/rofs/usr/lib/x86_64-linux-gnu/libc.so.6
/usr/lib/x86_64-linux-gnu/libc.so.6
/etc/apt/sources.list 的內容
deb http://mozilla.debian.net/ wheezy-backports iceweasel-release
## CRUNCHBANG
## Compatible with Debian Wheezy, but use at your own risk.
deb http://packages.crunchbang.org/waldorf waldorf main contrib
# deb-src http://packages.crunchbang.org/waldorf waldorf main
## DEBIAN
deb http://http.debian.net/debian wheezy main contrib non-free
# deb-src http://http.debian.org/debian wheezy main contrib non-free
## DEBIAN SECURITY
deb http://security.debian.org/ wheezy/updates main contrib
# deb-src http://security.debian.org/ wheezy/updates main
答案1
我假設您的即時 USB 記憶棒與您運行的其他版本具有相同的發行版,或者至少是基於 Debian 的發行版。
有了這些假設,首先使用您的 USB 記憶棒啟動您的系統。然後/lib/x86_64-linux-gnu/libc.so.6
使用命令查詢哪個套件擁有該檔案dpkg -S /lib/x86_64-linux-gnu/libc.so.6
(該檔案將由名為「libc6」的套件擁有,但無論如何這是一個很好的練習)。
當您的系統透過 USB 棒即時發行版運行時,請從以下位置下載所需的一個或多個軟體包:Crunchbang 華爾道夫網站。
然後將硬碟安裝到某個目錄。為了舉例,我將再次假設您將從硬碟安裝根分割區到/mnt
.
--root /mnt
然後剩下要做的就是使用指令 for重新安裝所需的軟體包dpkg
。這樣,套件就不會最終進入您的即時 USB 記憶棒檔案系統,而是進入您硬碟上已有的系統。
答案2
該libc.so.6
文件存在於libc6
包中。
您必須從哪個儲存庫中找出該libc6
軟體包安裝在您的電腦上。 (檢查/etc/apt/sources.list
等)。
然後手動下載它(例如,如果它是使用預設儲存庫的 Debian 機器,您可以從這裡),然後使用@SamiLaine 提供的說明進行安裝。
答案3
在 root shell 中嘗試:
ln -s /lib/x86_64-linux-gnu/libc-2.13.so /lib64/libc.so.6
如果libc-2.13.so
版本不適合您的系統,請使用 bash 中的製表符補全來找到正確的版本。
如果這不起作用,您可以使用靜態連結版本LD配置在根外殼中:
/sbin/ldconfig
如果 libc 連結的目標庫已刪除,請從以下位置下載 debian 軟體包:軟體包:libc6頁面,使用dpkg-deb -X
(手冊頁)並複製libc-2.13.so
到/lib/x86_64-linux-gnu
.然後運行 Tconfig 以確保所有連結都正確。
答案4
開啟終端機 ( ++ Ctrl)並執行以下命令:AltT
對於 64 位元 Ubuntu:
sudo ln -s /lib64/x86_64-linux-gnu/libc.so.6 /lib64/libc.so.6
對於 32 位元 Ubuntu:
sudo ln -s /lib/i386-linux-gnu/libc.so.6 /lib/libc.so.6