有没有办法在 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/
我怀疑它行不通,你最终需要使用两个单独的节。