如何在 Apt 引脚定义中包含逗号?

如何在 Apt 引脚定义中包含逗号?

我想创建一个 Apt 首选项文件,其中的 pin 定义与来自 的包相匹配Google, Inc.

以下定义似乎没有做任何事情:

Package: *
Pin: release o=Google, Inc.
Pin-priority: 900

我怀疑逗号造成了问题。我该如何将其去掉?

以下方法均不起作用:

  • release o="Google, Inc."
  • release o='Google, Inc.'
  • release o=Google\, Inc.
  • release o=Google\\, Inc.

奇怪的是,下面的内容匹配Google, Inc.成功:

  • release o=Google? Inc.

但这不是我想要的解决方案。我想知道如何Google, Inc.在不使用(不稳定的)通配符的情况下进行匹配。

更多信息:

$ apt-cache policy | grep -C 1 'Google, Inc.'
 500 http://dl.google.com/linux/earth/deb/ stable/main amd64 Packages
     release v=1.0,o=Google, Inc.,a=stable,n=stable,l=Google,c=main
     origin dl.google.com
 500 http://dl.google.com/linux/chrome/deb/ stable/main amd64 Packages
     release v=1.0,o=Google, Inc.,a=stable,n=stable,l=Google,c=main
     origin dl.google.com
$ grep Origin /var/lib/apt/lists/dl.google.com_*_Release
/var/lib/apt/lists/dl.google.com_linux_chrome_deb_dists_stable_Release:Origin: Google, Inc.
/var/lib/apt/lists/dl.google.com_linux_earth_deb_dists_stable_Release:Origin: Google, Inc.

答案1

虽然这与您想要做的并不完全一样,但它可能对您也有效,请尝试:

Pin: origin dl.google.com

在放弃尝试通过发布来固定它之后,我决定这样做,只要您没有来自该主机的任何其他存储库,它就会产生相同的效果......

答案2

如果转义逗号,则空格也应该转义,例如:

o=Google\,\ Inc.

相关内容