我的 HTPC 系统从 Ubuntu 13.10 升级到 14.04 后,我似乎无法安装 Kodi。
我跑
sudo apt-add-repository ppa:team-xbmc/ppa
sudo apt-get update
sudo apt-get install kodi kodi-bin
并得到:
The following packages have unmet dependencies:
kodi-bin : Depends: libsdl2-2.0-0 (>= 2.0.0) but it is not going to be installed
E: Unable to correct problems, you have held broken packages.
我在旧系统上安装了一些 PPA,并将它们全部从源列表中删除。我还ppa-purge
删除了 ream-xbmc 的 ppa 并重新添加了它。我从源列表中删除了一些其他 ppa,因为 ppa 清除失败了。旧系统可以毫无问题地运行 XBMC。升级很顺利,没有错误。
我看到一些其他人遇到了同样的问题,但通过手动安装 deb 解决了。这让我觉得我的 apt 非常混乱,我宁愿不进一步破坏我的设置。
此系统是使用旧版本的本指南。我还安装了 Gnome,以便偶尔浏览网页。
我该如何调试这个软件包问题?我的系统不知道什么libsdl2-dev
?我是否在 team-xbmc ppa 中发现了错误?
更多信息:
$ apt-cache policy libsdl2-dev
libsdl2-dev:
Installed: (none)
Candidate: 2.0.2+dfsg1-3ubuntu1.1
Version table:
2.0.2+dfsg1-3ubuntu1.1 0
500 http://za.archive.ubuntu.com/ubuntu/ trusty-updates/universe amd64 Packages
2.0.2+dfsg1-3ubuntu1 0
500 http://za.archive.ubuntu.com/ubuntu/ trusty/universe amd64 Packages
$ dpkg -S /usr/lib/x86_64-linux-gnu/libSDL*
libsdl1.2debian:amd64: /usr/lib/x86_64-linux-gnu/libSDL-1.2.so.0
libsdl1.2debian:amd64: /usr/lib/x86_64-linux-gnu/libSDL-1.2.so.0.11.4
libsdl-image1.2:amd64: /usr/lib/x86_64-linux-gnu/libSDL_image-1.2.so.0
libsdl-image1.2:amd64: /usr/lib/x86_64-linux-gnu/libSDL_image-1.2.so.0.8.4
答案1
我认为我找到了问题所在,因为 Kodi 现在已经正确安装:
首先,我通过运行找到了所有仍然挂在 saucy 中的软件包
dpkg --list | grep saucy
我使用 一个接一个地删除了它们apt-get remove <packagename>
。 (我怀疑这些是安装 gnome 时通过某些奇怪的 ppa 安装的旧包。)
删除完所有有问题的软件包后,我跑去apt-get autoremove
清理其余的软件包。然后我遇到了一个libgl1-mesa-dri 错误。
dpkg: error processing archive /var/cache/apt/archives/libgl1-mesa-dri_10.1.3-0ubuntu0.4_amd64.deb (--unpack):
trying to overwrite shared '/etc/drirc', which is different from other instances of package libgl1-mesa-dri:amd64
幸运的是,简单的解决方法sudo mv /etc/drirc /etc/drirc.bak2
解决了这个问题,我可以再次安装 Kodi 而不用再麻烦了。
答案2
尝试运行这个
sudo apt-get install -f
sudo dpkg --configure -a
sudo apt-get clean
sudo apt-get update
这应该可以清理所有损坏的包。然后你应该再试一次
sudo apt-get install kodi kodi-bin
希望这可以帮助
答案3
从 15.04 升级到 15.10 后,我遇到了同样的问题。我在这里找到的解决方案:Ubuntu 论坛:损坏的软件包 libsdl2
查看哪些软件包未处于干净安装状态(我有很多!):
dpkg -l|sed -nr '/^.[^in]/s/^(.{78}).*/\1/p'
添加回丢失的 PPA,在我的情况下是来自 Kodi 的 PPA。
将每个程序升级到当前级别并安装最新的内核:
sudo apt-get dist-upgrade
之后,在我的情况下可以再次安装 Kodi;然后继续使用 PPA 或
ppa-purge
在其上使用。将来升级 Ubuntu 版本之前请清除所有 PPA!