![apt-get 无法安装或删除任何软件包](https://linux22.com/image/831924/apt-get%20%E6%97%A0%E6%B3%95%E5%AE%89%E8%A3%85%E6%88%96%E5%88%A0%E9%99%A4%E4%BB%BB%E4%BD%95%E8%BD%AF%E4%BB%B6%E5%8C%85.png)
当我尝试在 apt gui 中安装 ia32-libs 时,它告诉我:
ruby-vmc:依赖:ruby-rubyzip2(>= 2.0.1)但已安装 2.0.1-0ubuntu4 依赖:libhighline-ruby1.9.1 但 %s 未安装 依赖: ruby-rest-client (>= 1.6.1) 但 1.6.7-1 已经安装 依赖: ruby-terminal-table (>= 1.4.2) 但 1.4.2-0ubuntu3 已经安装 依赖: ruby-json-pure (>= 1.5.1) 但 %s 未安装
接下来是我执行 sudo apt-get -f install 时的错误
installArchives() 失败: | 收集更改 [0] - 第 1 阶段/5 提交至:/etc/ 修改了 vmware/vmnet8/dhcpd/dhcpd.leases | 运行 pre_commit 钩子 - 第 3/5 阶段 提交修订159。 (正在读取数据库... (读取数据库... 5% (读取数据库... 10% (读取数据库... 15% (读取数据库...20% (读取数据库...25% (读取数据库...30% (读取数据库...35% (读取数据库...40% (读取数据库...45% (读取数据库...50% (读取数据库...55% (读取数据库... 60% (读取数据库... 65% (读取数据库...70% (读取数据库...75% (读取数据库...80% (读取数据库...85% (读取数据库...90% (读取数据库...95% (正在读取数据库...100% (正在读取数据库...当前安装了 491611 个文件和目录。) 正在解压 ruby-json-pure(来自 .../ruby-json-pure_1.5.1-0ubuntu3_all.deb)... dpkg: 处理 /var/cache/apt/archives/ruby-json-pure_1.5.1-0ubuntu3_all.deb (--unpack) 时出错: 尝试覆盖 '/usr/lib/ruby/vendor_ruby/json.rb',它也位于软件包 ruby-json 1.6.3-1 中 由于已达到 MaxReports 数量,因此未编写任何 apport 报告 处理时遇到错误: /var/cache/apt/archives/ruby-json-pure_1.5.1-0ubuntu3_all.deb dpkg:依赖性问题阻碍了 ruby-vmc 的配置: ruby-vmc 依赖于 ruby-json-pure (>= 1.5.1);然而: 软件包 ruby-json-pure 未安装。 dpkg:处理 ruby-vmc (--configure) 时出错: 依赖问题 - 未配置 dpkg:依赖性问题阻止了 cloudfoundry-client 的配置: cloudfoundry-client 依赖于 ruby-vmc (= 0.3.10-0ubuntu10);然而: 软件包 ruby-vmc 尚未配置。 dpkg: 处理 cloudfoundry-client (--configure) 时出错: 依赖问题 - 未配置
当我执行:
sudo apt-get 删除 ruby-json-pure ruby-json 正在读取订单列表...完成 正在分析货运的依赖关系树 正在读取状态信息...完成 **ruby-json-pure 软件包未安装,因此不会被删除** 您可以使用“apt-get -f install”来纠正这个错误: 未满足的依赖: libjson-ruby:依赖于:ruby-json 但不会安装 libjson-ruby1.8:依赖于:ruby-json 但不会安装 ruby-vmc:依赖于:ruby-json-pure(>= 1.5.1)但不会安装 E: 依赖项未满足。请尝试执行“apt-get -f install”。
所以现在我无法删除或安装任何东西。请帮助逐步解决这个问题,谢谢。
答案1
看起来您配置了有冲突的存储库,并且这些存储库中的软件包都试图安装,但都存在冲突。这不是一个简单的答案修复。通常,它会一步步找出哪些软件包有冲突,删除它们并安装您想要的软件包。如果您对此过程不太熟悉,最好在聊天频道中询问。
我可以回答的第一步是在您粘贴的输出中给出的。
dpkg: error processing /var/cache/apt/archives/ruby-json-pure_1.5.1-0ubuntu3_all.deb (--unpack):
trying to overwrite '/usr/lib/ruby/vendor_ruby/json.rb', which is also in package ruby-json 1.6.3-1
因此 ruby-json 包与 ruby-json-pure 包冲突。制作这些包的人没有正确指定包上的 conflicts-with。我们应该提交错误报告。
您可以先尝试删除两个软件包,然后安装一个
$ sudo apt-get remove ruby-json-pure ruby-json
我刚刚尝试在 12.10 系统上重现错误,但没有成功,而且我没有可用的 ruby-json-pure 包。您启用了哪些存储库?
最后,我建议您不要使用系统 ruby,而是考虑使用 rbenv,这样您就可以在不同的环境中同时使用 ruby-json 和 ruby-json-pure。
答案2
当您在系统中意外安装与架构或版本相同的软件包时,就会发生这种情况。使用损坏的软件包中的 synaptic 应用程序(在左栏)选择修复它,您也可以使用它apt-get -f
来修复它。