在更新 Ubuntu 14.04 时,我遇到了以下错误消息:
The following packages have unmet dependencies:
collada-dom-dev : Depends: collada-dom2.4-sp-dev but it is not installed
collada-dom2.4-sp : Depends: collada-dom2.4-sp-dev but it is not installed
E: Unmet dependencies. Try using -f.
任何帮助将不胜感激。
编辑:
安装缺少的包失败后,使用:
sudo apt-get -f install
我收到此消息:
Unpacking collada-dom2.4-sp-dev (2.4.4.1-ubuntu1~trusty1) ...
dpkg: error processing archive /var/cache/apt/archives/collada-dom2.4-sp-dev_2.4.4.1-ubuntu1~trusty1_i386.deb (--unpack):
trying to overwrite '/usr/lib/cmake/collada_dom-2.4/collada_dom-config.cmake', which is also in package collada-dom2.4-dp-dev 2.4.4.0-ubuntu1~trusty1
dpkg-deb: error: subprocess paste was killed by signal (Broken pipe)
Errors were encountered while processing:
/var/cache/apt/archives/collada-dom2.4-sp-dev_2.4.4.1-ubuntu1~trusty1_i386.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)
答案1
删除 sources.list.d 似乎是一个不太理想的解决方案,实际上可能无法解决根本问题。特别是如果其中有一些你确实想保留的来源。我认为这是更好的答案:dpkg 错误:“尝试覆盖文件,该文件也在……”
对于这个特殊问题我使用了:
sudo dpkg -i --force-overwrite /var/cache/apt/archives/collada-dom2.4-sp-dev_2.4.4.1-ubuntu1~trusty1_amd64.deb
注意:您需要将 .deb 文件替换为系统抱怨的文件。仍然不知道今天更新时到底是什么导致了这个问题……?
答案2
这似乎与 ROS 有关,ROS 是 Collada 的主要用户,即机器人操作系统。安装 ROS-Indigo 和 Ros-Jade(不同版本)可能会出现问题。执行建议的操作后
sudo dpkg -i --force-overwrite /var/cache/apt/archives/collada-dom2.4-sp-dev_2.4.4.1-ubuntu1~trusty1_amd64.deb
为了解除软件包系统的堵塞,我执行了“sudo apt-get autoremove”,它删除了许多旧的 ROS-Indigo 内容。之后,“sudo apt-get check”未显示任何错误。
答案3
我解决了这个问题。显然,我有第三方存储库导致了这个问题。我用以下命令删除了它们:
sudo mv /etc/apt/sources.list.d/ /etc/apt/sources.list.d.bk/
sudo mkdir /etc/apt/sources.list.d/
然后我跑了sudo apt-get install -f
答案4
删除软件包:sudo apt-get remove collada-dom2.4-sp