apt-get 无法安装或删除任何软件包

apt-get 无法安装或删除任何软件包

当我尝试在 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来修复它。

相关内容