Можно ли закрепить исходные пакеты? Если так, то как?

Учитывая это /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 не обращает внимания на закрепление.

Строго говоря, исходные пакеты - это другое пространство имен, чем двоичные пакеты. Самая последняя версия apt (даже после Buster, так что она только в тестировании + прямо сейчас) начала поддерживать закрепление по исходному пакету вместо двоичного пакета, используяsrc: префикс.

Я бы установил следующую запись закрепления, если бы Buster уже поддерживал ее для предпочтения пакетов Ceph 14 (из бэкпортов) над устаревшими пакетами v12 из стабильной, например:

Package: src:ceph
Pin: version 14.*
Pin-Priority: 1002

Это намного лучше, чем перечислять десятки двоичных пакетов, сгенерированных из одного источника.

Я проверил с более поздним подходом, и, к сожалению, даже с этой новой функцией, apt sourceпо-прежнему игнорирует закрепление.:-(

Другие вопросы по тегам