[犯病記] 重新安裝libc.so.6

[犯病記] 重新安裝libc.so.6

背景:有一天,我犯了個病,試圖在一個機器上安裝DOCA,然後安裝程序就下了一堆庫,把機器上的環境搞得一團糟,原來的DPDK也不能用了。DOCA的安裝程序不僅重新安裝了一大堆庫,還更換了系統內核版本,修改了網卡配置,以及更換了網卡驅動(MLNX_OFED)。爲此我不得不將上述東西全部重裝。

在我使用如下命令安裝mlnx_ofed時:

sudo ./mlnxofedinstall --without-dkms --add-kernel-support --kernel 5.4.0-26-generic --without-fw-update --force

它報瞭如下錯誤:

Building DEB for knem-modules-1.1.4.90mlnx1 (knem)...
Running  /usr/bin/dpkg-buildpackage -us -uc 
[31mFailed to build knem DEB[0m
Collecting debug info...
[31mSee /tmp/MLNX_OFED_LINUX-5.4-3.6.8.1-5.4.0-26-generic/mlnx_iso.2856830_logs/OFED.2857070.logs/knem.debbuild.log[0m

於是我繼續查看knem.debbuild.log,看到了這個報錯:

dpkg-shlibdeps: error: no dependency information found for /lib/x86_64-linux-gnu/libc.so.6 (used by debian/knem/opt/knem-1.1.4.90mlnx1/bin/knem_notify_fd_test)
Hint: check if the library actually comes from a package.

報錯的意思是缺少libc.so.6的依賴信息。下面的提示說這個庫可能是由一個包安裝的。我不難猜想DOCA在安裝的時候換掉了我的libc.so.6庫,而我後來卸載了DOCA,導致依賴信息缺失。

所以,我們要做的就是重新安裝一個libc.so.6,也即lic6。注意,libc6是一個相當重要的庫!幾乎所有linux中的程序都依賴於它,因此不能輕易地將其刪除!(如果你在命令行裏敲sudo apt remove libc6,它會告訴你這是一個非常危險的操作。)

使用如下命令從而安全地重裝libc6:

sudo apt-get reinstall libc6
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章