鉴于此/etc/apt/sources.list
文件:
deb http://us.archive.ubuntu.com/ubuntu/ cosmic main restricted universe multiverse
deb-src http://us.archive.ubuntu.com/ubuntu/ cosmic main restricted universe multiverse
deb http://us.archive.ubuntu.com/ubuntu/ disco main restricted universe multiverse
deb-src http://us.archive.ubuntu.com/ubuntu/ disco main restricted universe multiverse
以及这个/etc/apt/preferences
文件:
Package: *
Pin: release a=cosmic
Pin-Priority: 900
Package: *
Pin: release a=disco
Pin-Priority: -10
正如我所料,运行apt install some-package
将安装来自的版本。cosmic
但是,运行apt source some-package
将从 下载(较新的)版本disco
。
我怎样才能apt source
遵守引脚优先级?
答案1
事实证明这是不可能的,APT 团队的一位朋友的朋友表示。apt source
不注意固定。
答案2
严格来说,源包与二进制包的命名空间不同。apt 的最新版本(甚至是 Buster 之后的版本,因此目前仅在测试版以上)开始支持固定经过源包而不是二进制包,使用前缀src:
。
如果 Buster 已经支持优先使用 Ceph 14 软件包(来自反向移植)而不是稳定版中陈旧的 v12 软件包,我会设置以下固定条目,例如:
Package: src:ceph
Pin: version 14.*
Pin-Priority: 1002
比必须列举从该来源生成的数十个二进制包要好得多。
我已经检查过较新的 apt,遗憾的是即使有了这个新功能,它apt source
仍然会忽略固定。:-(