[Fixed] “您持有破损的包裹”错误

Linux 的一大优点是 适当的命令 它使您可以毫不费力地安装应用程序和软件。 使用 apt,您不必下载软件,然后通过安装程序并单击“下一步”十几次。 它确保每个软件都只使用一个终端命令安装。

但是,就像任何其他程序一样,事情可能会出错。 我们将在这篇文章中讨论的错误类似于以下内容:

E: Unable to correct problems, you have held broken packages.

当您尝试通过 apt 实用程序安装某些东西时,可能会发生此错误。 让我们详细查看错误并尝试解决问题。

是什么导致了这个错误?

一些软件(主要是第三方软件)没有兼容的依赖项,并且 apt 期望您的系统已经具有这些组件。 如果在您的系统上找不到所需的组件,apt 会抛出与损坏的软件包相关的错误,这意味着您尝试安装的软件包不完整。

过时的存储库的问题 ‘来源.列表‘ 文件,或 旧/不支持的版本 Linux的可能是这个问题的原因。

解决此问题的方法

在转向高级方法之前,让我们尝试一些可能会有所帮助的快速技巧:

方法 1:更新存储库

sudo apt update 

apt update 是一个众所周知的命令,它可以立即更新包列表及其依赖项。 由于我们面临的问题是由于缺少依赖项,因此该命令很有可能会修复错误。

如果问题仍然存在,请尝试以下命令:

sudo apt upgrade 

这会将系统上的现有软件包更新到最新版本。

方法二:用 aptitude 代替 apt

Aptitude 也是一个像 apt 一样的包管理器,它在一些 apt 不支持的情况下令人惊讶地工作! 您需要做的就是使用 aptitude 而不是恰当的。

例如, 假设你想使用安装 BIND9 aptitude,您将必须输入以下命令:

sudo aptitude install bind9 

如果您没有安装 aptitude,请运行以下命令:

sudo apt-get update sudo apt-get install aptitude 

方法 3:使用 autoremove 删除不必要的包

有时,即使在卸载其父应用程序后,不必要的软件包也会留下。 这些残留的软件包可能会干扰新应用程序或库的安装。 要得到 摆脱这些不必要的残留包裹, 只是 输入以下命令 进入终端:

sudo apt autoremove 

没有必要担心 autoremove 只会处理剩余的包和依赖项。

现在有了基础知识,我们将研究一些更高级的方法来解决这个问题。

方法 4:寻找持有的包裹并取消持有它们

正如错误消息所暗示的,问题是由于包裹被搁置引起的。 术语“保留包”意味着它不能以任何方式升级、删除或修改。

获取持有包裹的列表,您需要输入以下命令:

sudo apt-mark showhold 

取消持有特定包裹, 进入:

sudo apt-mark unhold <package-name> 

解开所有持有的包裹, 进入:

sudo apt-mark unhold $(sudo apt-mark showhold) 

方法 5:使用突触包管理器修复损坏的包

最初,Linux 没有像 Windows 这样的内置图形包管理器。 这就是为什么突触包管理器在为个人计算机制作的基于 Debian 的发行版上变得非常流行的原因,因为它提供了一个轻量级且强大的 GUI 包管理器。

该实用程序的主要功能之一是 你可以修复损坏的包裹 非常简单地。 请按照以下步骤操作:

1.首先,安装突触包管理器:

sudo apt update sudo apt install synaptic 

2. 以超级用户权限运行 synaptic:

sudo synaptic 

3. 前往 编辑 > 修复损坏的包

修复 Synaptic 中损坏的包

如果存在破损的包裹,则需要一些时间。 检查问题是否已解决。

参考

  • 询问 Ubuntu – 取消保留一个包
  • 向 Ubuntu 线程询问相同的问题

概括

在本文中,我们看到了五种不同的方法来修复“无法纠正问题,您持有损坏的包裹”错误。 讨论的所有方法都很容易执行,我希望您能够解决系统上的问题。 如果您在尝试了上述所有方法后仍然面临同样的问题,可能是因为使用了 不受支持的 Linux 发行版,在这种情况下,您将不得不考虑升级到它的更新版本。