在更新 Ubuntu 和基于 Debian 的 Linux 发行版时修复“以下软件包已被保留”错误

前几天我正在更新我的 Ubuntu 系统。 我更喜欢使用 apt update 和 apt upgrade 组合来更新系统的命令行方式。

这次我在 Ubuntu 中遇到了一个奇怪的更新错误。 它向我展示了可以升级的软件包,但由于以下错误而无法升级这些软件包:

以下包裹已被保留

这是我遇到的错误的屏幕截图:

如上图所示,问题是由 fwupd 引起的,fwupd 是 Ubuntu 和其他 Linux 中的固件更新管理器守护程序。

让我向您展示如何在 Ubuntu 和其他 Linux 发行版中处理此错误,例如 Linux 薄荷, Debian, Kali Linux 等

修复“以下包已被保留”错误

修复此错误非常简单。 您所要做的就是对问题中的一个或多个软件包使用 apt install 命令:

sudo apt install package_name

如果您在已安装的软件包上使用 apt install,它会得到更新。 就我而言, fwupd 包被保留了下来。 所以,这是我尝试过的:

sudo apt install fwupd

正如您在下面的屏幕截图中看到的那样,它建议安装两个包,然后也安装这些包。

解释:“以下包已被保留”错误的原因以及它是如何修复的

上述建议的修复程序应该可以为您解决问题。 但是您是否好奇是什么导致了错误以及它是如何修复的? 让我向你解释一下。

通常,当您运行 sudo 适当的更新和 sudo apt upgrade 命令,它将所有已安装的软件包更新为其可用的较新版本。

但是,如果已安装包的依赖项已更改,以至于需要安装新包,则已安装的包将不会随着系统更新而升级,您将看到包保留错误。

在这里的例子中,最初安装 fwupd 时,没有安装 tpm2-tools 和 tpm2-abrmd,fwupd 也不依赖它。 后来,更新版本的 fwupd 需要安装这些新软件包。

这是 Debian 中的一种机制 APT 包管理器 这会通知您已经安装的软件包现在需要安装更多新软件包作为依赖项。 当您手动和单独更新这些软件包时,您会看到将安装哪些新软件包,并且不再显示错误。

你也可以使用 apt 全面升级/apt-get dist-upgrade 代替 apt 安装包名称 在这种情况下,但我不建议这样做。 apt full-upgrade 可能会在处理依赖项时自动删除它认为不必要的包。 这可能会导致不必要的情况。

你修复了这个错误吗?

此解决方案是否帮助您摆脱了“包裹已被保留”错误? 如果是,我欢迎您在评论部分快速发送“谢谢”信息。 如果没有,请告诉我,我会尽力为您提供进一步帮助。