[犯病记] 重新安装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
| 欢迎来原网站坐坐! >原文链接<