Можно ли закрепить исходные пакеты? Если так, то как?
Учитывая это /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по-прежнему игнорирует закрепление.:-(