无法纠正问题,您已经破坏了包裹
从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 hold
, sudo 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