未满足的依赖关系。尝试“apt --fix-broken install”- linux-image 中存在冲突

未满足的依赖关系。尝试“apt --fix-broken install”- linux-image 中存在冲突

我无法使用 安装软件包apt。我正在使用 Ubuntu 20.04 Focal。

一些包需要linux-image-5.11.0-38-generic,如下所示。

:~$ sudo apt install <package>

Reading package lists... Done
Building dependency tree       
Reading state information... Done
You might want to run 'apt --fix-broken install' to correct these.
The following packages have unmet dependencies:
 linux-image-generic-hwe-20.04 : Depends: linux-image-5.11.0-38-generic but it is not going to be installed
 linux-modules-5.11.0-38-generic : Depends: linux-image-5.11.0-38-generic but it is not going to be installed or
                                            linux-image-unsigned-5.11.0-38-generic but it is not going to be installed
 linux-modules-extra-5.11.0-38-generic : Depends: linux-image-5.11.0-38-generic but it is not going to be installed or
                                                  linux-image-unsigned-5.11.0-38-generic but it is not going to be installed
E: Unmet dependencies. Try 'apt --fix-broken install' with no packages (or specify a solution).

我的内核:

$ uname -r
5.11.0-37-generic

我可以以某种方式安装 5.11.0-38 吗?或者降级这些软件包以便它们与 5.11.0-37 兼容?

编辑
答案是正确的,而且有效。我必须先关闭杀毒软件才能让它们正常工作。

答案1

由此教程

方法 1:重新配置包数据库

您可以尝试的第一个方法是重新配置软件包数据库。可能是在安装软件包时数据库损坏了。重新配置通常可以解决问题。

sudo dpkg --configure -a

方法 2:使用修复损坏

如果软件包安装先前被中断,您可以使用install -f相应选项来自动尝试纠正存在损坏依赖关系的系统。

sudo apt-get install -f

方法 3:尝试删除有问题的包

如果这对您来说不是问题,您可以尝试手动删除该软件包。请不要对 Linux 内核(以 linux- 开头的软件包)执行此操作。

sudo apt remove package_name

方法 4:删除有问题的软件包的 post info 文件

这应该是你最后的手段。你可以尝试从 /var/lib/dpkg/info 中删除与有问题的软件包相关的文件。

答案2

因此,我发现,在我的情况下,答案是 /etc/default/grub 文件有问题。我在 GRUB_CMDLINE_LINUX_DEFAULT= 上发现了一对多余的引号,这是我之前编辑过的。

我修复了 grub 文件并运行 update-grub 重新启动,然后执行 apt --fix-broken install。这修复了我的更新,现在我使用 5.11.0-41-generic 没有任何问题。

答案3

有时,当内核发布但所有依赖项尚未发布或可用时,就会发生这种情况。在 packages.ubuntu.com 上,未满足的依赖项linux-image-5.11.0-38-generic(或任何特定内核版本)将显示为建议的软件包,并显示“不可用”。

如果您尝试apt-cache show <packagename>对列出的“不可用”依赖项之一执行此操作,它会抱怨该软件包严格来说是虚拟软件包或必须由其他软件包提供。当然,这并不完全正确,因为该软件包只是尚未可用,但 apt 会假设并非如此。

因此你至少有两个可能的选择。

  1. 您可能可以使用 强制安装sudo apt install --no-install-recommends linux-image-5.11.0-38-generic。但这会使您缺少可能导致问题的模块、工具和标头包。

  2. 只需等待几个小时或一整天,当依赖项释放后,问题就会自行消失。一个简单的sudo apt updatesudo apt full-upgrade将安装所有可用的包。


我最近在 20.04 上进行后续 hwe 内核更新时遇到了同样的问题。Apt 说有 4 个可用更新,但当我运行时sudo apt dist-upgradefull-upgrade它会说安装了 0 个软件包。

apt list --upgradable检查显示的 hwe 内核更新的输出,但手动安装linux-image-generic-hwe-20.04和其他软件包给出了问题中显示的相同错误,但当然版本不同。

答案4

我找到了解决方案(针对您的问题)

 sudo rm -rf /var/cache/apt/archives/linux*

此命令删除所有导致错误的文件

如果这不起作用

然后

sudo rm -rf /var/lib/dpkg/info/linux-modules-5.11.0-38-generic 
sudo rm -rf /var/lib/dpkg/info/linux-image-generic-hwe-20.04
sudo rm -rf /var/lib/dpkg/info/linux-modules-extra-5.11.0-38-generic
sudo rm -rf /var/lib/dpkg/info/linux-generic-hwe-20.04
sudo apt install linux-modules-5.11.0-38-generic linux-image-generic-hwe-20.04  linux-modules-extra-5.11.0-38-generic linux-generic-hwe-20.04
sudo dpkg --configure -a 

您还应该禁用防病毒软件,然后运行“sudo apt --fix-broken install”。

相关内容