修复未满足的依赖关系

修复未满足的依赖关系

我继续处理 apt。在 apt-offline 使用失败后,我收到一条消息,提示有计数错误。我运行sudo apt-get check并得到输出:

You might want to run 'apt --fix-broken install' to correct these.
The following packages have unmet dependencies:
 systemd : Depends: libsystemd0 (= 237-3ubuntu10.33) but 237-3ubuntu10.39 is installed
 udev : Depends: libudev1 (= 237-3ubuntu10.33) but 237-3ubuntu10.39 is installed
E: Unmet dependencies. Try 'apt --fix-broken install' with no packages (or specify a solution).

但是如果我按照这个建议做,我会看到一长串将被删除的模块(97),包括init initramfs-tools initramfs-tools-core plymouth plymouth-label等等。我之前做过一次,破坏了我的安装并被迫重新安装 Ubunte,所以我认为执行这个命令是个坏主意。

我该如何在不完全破坏安装的情况下修复这些未满足的依赖关系?谢谢!

已编辑

好吧,对我来说这很简单。在我的离线 Ubuntu 上,我执行了

sudo apt-get check

并获得了未满足依赖关系的软件包列表。

接下来,在我的在线机器上(实际上是 Win 10 Pro,Ubuntu 18.04.4 作为 WSL),我执行了这个命令(来自https://www.ostechnix.com/download-packages-dependencies-locally-ubuntu/

$ apt-get download $(apt-rdepends package_wih_unmet | grep -v "^ " | sed 's/debconf-2.0/debconf/g')

(其中package_wih_unmet是我在上一步中获得的列表中的一个包)在为此目的创建的文件夹中(例如,'~/python-crypto/'),针对上面列表中的每个包。

接下来我将下载的文件复制到闪存中,离线 Ubunut 只需sudo dpkg -i *在此文件夹中运行即可。

经过几次迭代,我以未满足的依赖关系的方式恢复了我的系统。

但为了提高效率,我必须带上装有调制解调器的笔记本电脑。

答案1

你可以试试sudo dpkg --configure -a

另一个解决方案是:

sudo apt purge libsystemd0 libudev1
sudo apt install libsystemd0=237-3ubuntu10.33
sudo apt install libudev1=237-3ubuntu10.33

相关内容