我刚刚关闭了我的 19.04 系统。
我正在运行sudo apt-get upgrade
并想安装atop
包裹用于监控目的,不会中断升级过程。
dpkg -x
因此我决定下载该软件包并使用以下命令将其提取到文件系统中(不要在真正的 19.xx 系统上尝试它们!):
apt download atop
sudo dpkg -x atop_..._amd64.deb /
然后我无法使用包括sudo
和在内的所有命令apt
。
这是一个虚拟机,所以我有一个快照。报告错误 1843476到 LaunchPad 大约 19.04 和 19.10。
但我的方法有什么问题呢?
我之前在 Ubuntu 16.04 LTS 和 18.04 LTS 上使用过它,没有问题。
当然,运行后dpkg -x
我习惯sudo apt install
以正常方式安装包,以便将其列在 中/var/lib/dpkg/status
。
答案1
在新安装的系统上/lib
有一个指向以下内容的符号链接/usr/lib
:
$ ls -l /lib lrwxrwxrwx 1 root root 7 Apr 30 02:24 /lib -> usr/lib
但已用新内容dpkg -x
覆盖了符号链接/lib
。
在被终止的系统上,它现在只包含一个文件夹(来自atop
包装内容):
/lib/systemd/system-sleep/atop-pm /lib/systemd/system/atop.service /lib/systemd/system/atopacct.service
因此系统找不到库。
我通过启动 LiveCD、安装有问题的系统并重新创建符号链接解决了这个问题:
cd /media/user/problematic-disk/
sudo mv lib/* usr/lib
sudo rmdir lib
sudo ln -s usr/lib lib
最后用 重新安装该包sudo apt install --reinstall atop
。
注意:
1. Ubuntu 16.04 LTS 和 18.04 LTS 不受影响,因为它们在该/
级别上没有符号链接(内核和 initrd 除外)。2
.该方法应非常谨慎使用(作为修复问题的最后机会) ,并且根本不应在 19.04 及更新版本中使用,dpkg -x
因为顶层有许多符号链接(bin -> usr/bin
,,,,,,)lib -> usr/lib
lib32 -> usr/lib32
lib64 -> usr/lib64
libx32 -> usr/libx32
sbin -> usr/sbin
。