我(拼命地)尝试在我的 14.04 上安装 VLC。
apt-cache policy vlc
返回:
vlc:
Installed: (none)
Candidate: 2.1.6-0ubuntu14.04.1
Version table:
2.1.6-0ubuntu14.04.1 0
500 http://mirror.switch.ch/ftp/mirror/ubuntu/ trusty-updates/universe amd64 Packages
500 http://mirror.switch.ch/ftp/mirror/ubuntu/ trusty-security/universe amd64 Packages
2.1.2-2build2 0
500 http://mirror.switch.ch/ftp/mirror/ubuntu/ trusty/universe amd64 Packages
当我尝试安装时,出现了一个臭名昭著的vlc-nox
问题:
Reading package lists... Done
Building dependency tree
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:
The following packages have unmet dependencies.
vlc : Depends: vlc-nox (= 2.1.6-0ubuntu14.04.1) but it is not going to be installed
Recommends: vlc-plugin-notify (= 2.1.6-0ubuntu14.04.1) but it is not going to be installed
Recommends: vlc-plugin-pulse (= 2.1.6-0ubuntu14.04.1) but it is not going to be installed
E: Unable to correct problems, you have held broken packages.
尝试安装vlc-nox
会导致请求安装libfreerdp1
,然后出现以下消息:
sudo apt-get install libfreerdp1
Reading package lists... Done
Building dependency tree
Reading state information... Done
Suggested packages:
freerdp-x11
The following packages will be REMOVED
libfreerdp-cache1.1 libfreerdp-client1.1 libfreerdp-codec1.1
libfreerdp-common1.1.0 libfreerdp-core1.1 libfreerdp-crypto1.1
libfreerdp-gdi1.1 libfreerdp-locale1.1 libfreerdp-plugins-standard
libfreerdp-primitives1.1 libfreerdp-rail1.1 libfreerdp-utils1.1
libwinpr-crt0.1 libwinpr-dsparse0.1 libwinpr-environment0.1 libwinpr-file0.1
libwinpr-handle0.1 libwinpr-heap0.1 libwinpr-input0.1
libwinpr-interlocked0.1 libwinpr-library0.1 libwinpr-path0.1
libwinpr-pool0.1 libwinpr-registry0.1 libwinpr-rpc0.1 libwinpr-sspi0.1
libwinpr-synch0.1 libwinpr-sysinfo0.1 libwinpr-thread0.1 libwinpr-utils0.1
libxfreerdp-client1.1 remmina-plugin-rdp
The following NEW packages will be installed
libfreerdp1
现在,我不明白为什么安装 vlc 会导致删除这些包?有没有办法解决这个问题?
已经尝试过建议的(合理)解决方案这里,这里,这里,这里,这里除了添加存储库之外。
输出apt-cache policy libfreerdp-cache1.1
:
libfreerdp-cache1.1:
Installed: 1.1.0~git20140921.1.440916e+dfsg1-2ubuntu1~trusty1
Candidate: 1.1.0~git20140921.1.440916e+dfsg1-2ubuntu1~trusty1
Version table:
*** 1.1.0~git20140921.1.440916e+dfsg1-2ubuntu1~trusty1 0
500 http://ppa.launchpad.net/remmina-ppa-team/remmina-master/ubuntu/ trusty/main amd64 Packages
100 /var/lib/dpkg/status
输出apt-cache policy remmina-plugin-rdp
:
remmina-plugin-rdp:
Installed: 1.1.1-ppa1+484+201508180831~ubuntu14.04.1
Candidate: 1.1.1-ppa1+484+201508180831~ubuntu14.04.1
Version table:
*** 1.1.1-ppa1+484+201508180831~ubuntu14.04.1 0
500 http://ppa.launchpad.net/remmina-ppa-team/remmina-master/ubuntu/ trusty/main amd64 Packages
100 /var/lib/dpkg/status
1.0.0-4ubuntu3 0
500 http://mirror.switch.ch/ftp/mirror/ubuntu/ trusty/main amd64 Packages
答案1
问题的第一部分是您禁用了不稳定的 PPA 或 repos。请看一下这篇文章以获取更多信息。这将是解决您的问题的第一步。
清除这些后,请在终端窗口中输入以下内容。
sudo apt-get remove --purge vlc-nox
sudo apt-get autoclean
sudo dpkg --configure -a
sudo apt-get -f install
sudo apt-get autoremove
sudo apt-get update
sudo apt-get dist-upgrade
sudo apt-get install vlc
另一个建议是使用官方 VLC 存储库而不是 Ubuntu 存储库。在我看来,这些存储库保持最新状态并且效率更高。如果您想这样做,请在下面输入以下内容:
sudo add-apt-repository ppa:videolan/stable-daily
sudo apt-get update && sudo apt-get upgrade
sudo apt-get install vlc
答案2
很简单。您正在使用的 ppa 具有许多 freerdp 包,但没有 libfreerdp1。
https://launchpad.net/~remmina-ppa-team/+archive/ubuntu/remmina-master
因此,当尝试安装 vlc 时,它依赖于 ubuntu 存储库中提供的 libfreerdp1。但是 ubuntu 中的 libfreerdp1 与您安装的一些 freerdp 包冲突,必须删除它们才能安装 vlc 和 libfreerdp1。
要解决或继续,有几个选择,
在 ppa 上使用 ppa-purge,然后安装 vlc。
安装 vlc,删除所有那些包(似乎没有用,那么 ppa 就没用了,所以 1 比较好
联系 ppa 维护人员并报告问题,也许他们会解释为什么没有 libfreerdp1 并提供使用新包/soname 的 vlc 构建。
看看你是否可以重建 vlc,这样就不需要 libfreerdp1 了,ck。libfreerdp1 消失后,vivid 会做什么。
不要安装 vlc,保持原样。
答案3
我建议在命令行上使用 aptitude 来解决依赖问题和损坏的包,然后重新查看 Nickolaus L. 给出的答案。