我无法使用 安装软件包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 会假设并非如此。
因此你至少有两个可能的选择。
您可能可以使用 强制安装
sudo apt install --no-install-recommends linux-image-5.11.0-38-generic
。但这会使您缺少可能导致问题的模块、工具和标头包。只需等待几个小时或一整天,当依赖项释放后,问题就会自行消失。一个简单的
sudo apt update
,sudo apt full-upgrade
将安装所有可用的包。
我最近在 20.04 上进行后续 hwe 内核更新时遇到了同样的问题。Apt 说有 4 个可用更新,但当我运行时sudo apt dist-upgrade
,full-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”。