如何从 ppa 中使用 -t 选项安装软件包

如何从 ppa 中使用 -t 选项安装软件包

我在 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

从宇宙中汲取它。我不知道为什么,但它是这样工作的。

相关内容