![在 Debian 中固定特定子部分](https://linux22.com/image/620958/%E5%9C%A8%20Debian%20%E4%B8%AD%E5%9B%BA%E5%AE%9A%E7%89%B9%E5%AE%9A%E5%AD%90%E9%83%A8%E5%88%86.png)
我正在尝试将一些软件包从 Debian jessie 中的特定子部分(本例中为 gnome)中固定。对于子部分,我的意思是:gnome、admin、x11 等…apt-cache 会在任何软件包的“部分”字段中显示此值。
有很多关于使用基于原点(“o”参数)、标签(“l”)、发布(“a”)等的 apt 固定的示例......但没有一个显示如何固定子部分。
作为参考,这是最常见的例子:
Package: *
Pin: release a=experimental
Pin-Priority: 450
其他一些示例在 Package 行中使用通配符,但我对固定“gnome*”包不感兴趣,因为 gnome 部分中还有其他包与该表达式不匹配(请参阅此链接查看列表)
我想要的是这样的:
Package: *
Pin: release o=Debian,a=experimental,x=gnome
Pin-Priority: 450
我正在寻找按子部分“过滤”的“x”参数,但我不知道它的名称,甚至不知道它是否存在。关于 apt-pinning 的文档,正如你们许多人可能已经知道的那样,非常不精确和不完整。
答案1
(目前)这是不可能的。
您可以固定到包名称或输出中的任何内容apt-cache policy
(无需其他参数),例如
600 http://ftp.ch.debian.org/debian/ testing/main amd64 Packages
release o=Debian,a=testing,n=jessie,l=Debian,c=main
origin ftp.ch.debian.org
因此,您可以固定到发行版的来源 (o)、存档/套件名称 (a)、代号 (n)、标签 (l)、组件 (c) 或来源的主机名。这基本上意味着您可以固定到每个Packages
列表,但不能固定到Packages
列表中的软件包子集(当然软件包名称除外)。