我在 virtualbox 中运行 ubuntu xenial。
我使用 apt-pinning 在我的系统中绑定了一些 PPA。一个例子
cat /etc/apt/preferences.d/xbmc
# Apt-pinning für ppa:xbmc
Package: *
Pin: origin ppa.launchpad.net
Pin-Priority: 50
我怎样才能安装kodi
apt install -t something kodi
LANG=C apt install -t team-xbmc kodi
Reading package lists... Done
E: The value 'team-xbmc' is invalid for APT::Default-Release as such a release is not available in the sources
我尝试了 /etc/apt/preferences/xbmc 中的几个条目
LANG=C apt-cache policy | grep -i xbmc -A1
50 http://ppa.launchpad.net/team-xbmc/ppa/ubuntu xenial/main i386 Packages
release v=16.04,o=LP-PPA-team-xbmc,a=xenial,n=xenial,l=Kodi stable,c=main,b=i386
origin ppa.launchpad.net
以及 的几个选项-t
。但结果总是一样的。
我知道我可以通过提供包的确切版本来从 ppa 安装 kodi,但这是迂回的。
答案1
# apt-get install kodi=<exact version>
答案2
使用apt-cache策略可以知道哪个版本的kodi包来自哪里。这里我使用 youtube-dl 来达到同样的效果。
[$] apt-cache policy youtube-dl
youtube-dl:
Installed: 2017.02.07-1
Candidate: 2017.02.07-1
Version table:
2017.03.07-1 1
1 http://httpredir.debian.org/debian unstable/main amd64 Packages
1 http://httpredir.debian.org/debian unstable/main i386 Packages
*** 2017.02.07-1 600
600 http://httpredir.debian.org/debian stretch/main amd64 Packages
600 http://httpredir.debian.org/debian stretch/main i386 Packages
100 /var/lib/dpkg/status
可以看出,它告诉我有两个选择,一个来自拉伸/测试,另一个来自 sid/unstable。如果我可以选择另一个回购协议,它也会这样做。
在 Debian 中,你可以使用并提供向后移植的原因- t
,那是因为在 Debian 中,apt 理解有 repo。称为向后移植,它已经被明确定义了很多年。 Debian 也有第三方存储库(例如 deb-multimedia),如果您想要它们的版本,则必须使用其名称。无论我见过什么向后移植包或第三方存储库,它们中的大多数都有独特的命名方案,与 Debian 官方包和版本命名程序不同。
所有或任何第三方存储库。 Ubuntu 不一定位于 Launchpad 中,因此需要确切的名称和版本来帮助找到所需的内容。
答案3
我用 2 个包含软件包的 ppa 检查了它,这些软件包也可以在“官方来源”中找到
sudo apt-get -t xenial install kodi
从 ppa 中提取包。
sudo apt install kodi
从宇宙中汲取它。我不知道为什么,但它是这样工作的。