是否可以固定源包?如果可以,该怎么做?

是否可以固定源包?如果可以,该怎么做?

鉴于此/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仍然会忽略固定。:-(

相关内容