Linux
未連結的 libc.so.6
我通過執行取消連結 libc.so.6
$ sudo unlink /usr/lib/libc.so.6
為了修復它,我在 U 盤上啟動了 ubuntu 並嘗試再次連結它。問題是我不知道 libc 的版本,也無法歸檔任何
libc-*.so
文件。如何找到正確的文件來解決這種情況?
Arch 似乎在使用 GNU libc,這通常是大多數 Linux 發行版的預設設置。在撰寫本文時,目前版本似乎是 2.35-3。
通過列出 Arch 包內容,我看到:
$ unzstd < glibc-2.35-3-x86_64.pkg.tar.zst |tar tvf - |grep libc.so -rw-r--r-- root/root 255 2022-03-20 22:45 usr/lib/libc.so -rwxr-xr-x root/root 2463384 2022-03-20 22:45 usr/lib/libc.so.6
不幸的是,它看起來
/usr/lib/libc.so.6
不是一個連結,而是 Arch 上的實際庫,所以你必須確保 Ubuntu 已經zstd
安裝(sudo apt-get install zstd
),然後下載 Archglibc-2.35-3-x86_64.pkg.tar.zst
(例如,使用上面連結的 Arch 包資訊頁面上的“從鏡像下載”連結) 到某個 Ubuntu 可以訪問它的地方,然後執行以下操作:$ unzstd < glibc-2.35-3-x86_64.pkg.tar.zst |tar xvf - usr/lib/libc.so.6 $ sudo mv usr/lib/libc.so.6 <the mount location of your Arch root in Ubuntu>/usr/lib/