如果再给我一次机会,我会再检查一遍,但我却意外地运行了sudo ln -sf something /usr/lib/x86_64-linux-gnu/libc-2.31.so
。而且,没有另一个 glibc 副本,因为这是真正的共享对象,而不是符号链接。
那么我该如何恢复呢?我想我可能必须再获取一份 glibc 副本,从 USB 设备启动机器,然后将干净的副本复制libc-2.31.so
到/usr/lib/x86_64-linux-gnu
。
正确的做法是什么?我还必须重建和libc.so.6
下的符号链接吗?/lib/x86_64-linux-gnu
/usr/lib/x86_64-linux-gnu
答案1
不要在 APT 控制的文件夹中创建符号链接!!!
您将破坏系统和/或为其未来的维护带来噩梦!!!
要恢复情况,请重新安装libc6 软件包经过
sudo apt-get update
sudo apt-get install --reinstall libc6
下次不要触碰符号链接。
如果您想玩弄该系统 - 请在/usr/local/bin
APT 控制之外进行。
注意:在最新的 20.04 LTS 中,只有一个名为libc-2.31.so- 看
# find / -name libc-2.31.so /usr/lib/x86_64-linux-gnu/libc-2.31.so
以及一个名为libc.so.6:
# find / -name libc.so.6 /usr/lib/x86_64-linux-gnu/libc.so.6
而它们的符号链接如下(中心部分被替换为(...)
):
# ls -al /usr/lib/x86_64-linux-gnu/libc-2.31.so /usr/lib/x86_64-linux-gnu/libc.so.6 -rwxr-xr-x (...) /usr/lib/x86_64-linux-gnu/libc-2.31.so lrwxrwxrwx (...) /usr/lib/x86_64-linux-gnu/libc.so.6 -> libc-2.31.so