多元的政策偏好

多元的政策偏好

有没有办法在 apt 首选项文件中组合两个来源?

有了这个内容

Package: dotnet* aspnet* netstandard*
Pin: origin "mirrors.ircam.fr"
Pin-Priority: -10

Package: dotnet* aspnet* netstandard*
Pin: origin "security.ubuntu.com"
Pin-Priority: -10

运行这个命令我有这个输出并且优先级受到尊重

➜ apt policy dotnet-sdk-7.0
dotnet-sdk-7.0:
  Installed: (none)
  Candidate: 7.0.400-1
  Version table:
     7.0.110-0ubuntu1~22.04.1 -10
        500 http://mirrors.ircam.fr/pub/ubuntu/archive jammy-updates/universe amd64 Packages
        500 http://security.ubuntu.com/ubuntu jammy-security/universe amd64 Packages

如果我尝试像这样写文件

Package: dotnet* aspnet* netstandard*
Pin: origin "mirrors.ircam.fr", origin "security.ubuntu.com"
Pin-Priority: -10

我得到了这个结果,优先级不再受到尊重

apt policy dotnet-sdk-7.0
dotnet-sdk-7.0:
  Installed: (none)
  Candidate: 7.0.400-1
  Version table:

     7.0.110-0ubuntu1~22.04.1 500
        500 http://mirrors.ircam.fr/pub/ubuntu/archive jammy-updates/universe amd64 Packages
        500 http://security.ubuntu.com/ubuntu jammy-security/universe amd64 Packages

有没有办法忽略除 microsoft repo 之外的所有内容,而不为每个源编写两个块?

答案1

apt偏好设置中,逗号的作用类似于“and”运算符;由于单个存储库无法满足两个来源,因此无法满足您的组合子句。

可能可以在正则表达式中使用析取,但我还没有在子句中尝试过origin

Pin: origin /mirrors.ircam.fr|security.ubuntu.com/

我怀疑它行不通,你最终需要使用两个单独的节。

相关内容