无法纠正问题,您已经破坏了包裹

从10.04升级到12.04后,我尝试安装不同的软件包。 例如ia32-libs和skype(4.0)。

当试图安装这些时,我得到’无法纠正问题,你已经破坏了包’错误消息。

输出命令:

sudo apt-get install -f Reading package lists... Done Building dependency tree Reading state information... Done 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 

运行之后:

 sudo dpkg --configure -a foo@foo:~$ sudo apt-get install -f Reading package lists... Done Building dependency tree Reading state information... Done 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 

该特定错误消息可能表示您已持有包,但它也可能表示存在其他问题。

您可以获得实际持有的包列表:

 dpkg --get-selections | grep hold 

如果没有,或者没有看起来相关,那么它可能是别的东西。 在收到错误消息时,请仔细检查您尝试的命令的输出,因为除了错误消息之外,该命令的完整输出中可能还有其他线索。

另一种故障排除方法可能是使用aptitude而不是apt-get来尝试安装您的软件包:

 sudo aptitude install  

能力将不那么容易放弃,并将尝试找到可能涉及修改其他包的解决方案。 它可能会为您提供有关问题的更多解释以及修复问题的选项。

偶尔能够倾向于移除或降级大量的软件包以满足您的请求,在这种情况下,使用-f重试会改变其优先级并帮助它提出涉及删除/降级更少软件包的解决方案,即使这意味着并非所有更改你要求可以继续:

 sudo aptitude -f install  

那也发生在我身上。 我所做的只是sudo apt-get update ,这解决了我的问题。 祝好运。

关于缺少依赖关系,我遇到了类似的情况。 在我的情况下,我试图在ubuntu saucy salamander 13.10上安装curl …

该错误表明依赖性需要curl3库的早期版本。

通过尝试使用aptitude安装curl,我能够降级到早期版本。

当它注意到缺少的依赖关系,以及原因(需要早期版本的库文件)时,它给了我几个如何响应的选项… y / / n / q

Y会中止安装, N会寻找另一个选项,而Q只会退出并且不做任何其他事情,留下一个破损的包。

我选择了N ,它让我可以选择将库文件降级到早期版本。 这就是我所做的,curl完成安装,没有更多的错误。

  • 我可能会考虑在安装后再次升级库文件,但是嘿,到目前为止这么好。

我在14.04的全新安装中有类似的情况, dpkg --get-selections | grep hold没有列出任何文件 dpkg --get-selections | grep holdsudo apt-get update后没有欢乐。

为我修复它的原因很简单

 sudo apt-get autoremove 

当我尝试重新安装失败的包时,它工作正常。 好极了!

有同样的问题,我从另一个答案( dpkg --get-selections | grep hold )运行了那个包检查命令,并看到了

 tomcat7 deinstall tomcat7-common install 

所以我用“ apt-get remove tomcat7-common

然后我可以安装Tomcat 6(我正在删除Tomcat 7并安装Tomcat 6)。

对我来说,上述都没有奏效,因为我的系统没有更新。 我做到了

Home Key > Software Updater > Install

并更新了我的系统; 之后,我可以用apt正常安装我的包。

这些是一些快速简便的方法来修复you have held broken packages错误。

  • 打开/etc/apt/sources.list的sources.list文件,检查是否有不同的Ubuntu版本的软件源,而不是您当前使用的Ubuntu版本。 如果在sources.list中找到任何不正确的版本行,请使用sudoedit /etc/apt/sources.list打开sources.list文件,在sources.list中注释掉错误的行,并在其前加上#字符,保存源。列表文件,并运行sudo apt update以更新可用软件包列表。

  • 在Synaptic包管理器中选择“ 修复损坏的包”选项。 运行以下命令以安装Synaptic。

     sudo apt install synaptic 

    打开Synaptic并在Synaptic中选择编辑 – > 修复损坏的包 ,然后再次重复编辑 – > 修复损坏的包

  • 如果您收到此错误消息:

     Try 'apt-get -f install' with no packages (or specify a solution) 

    运行以下命令:

     sudo apt-get -f install