Учитывая это /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
повиноваться приоритетам контакта?
Оказывается, что это не возможно на друга друга в команде APT. apt source
не обращает внимание на прикрепление.
Строго говоря, исходные пакеты представляют собой другое пространство имен, чем бинарные пакеты. Самая последняя версия apt (даже после Buster, так что сейчас она только в тестировании+) начала поддерживать закрепление исходного пакета by вместо бинарного пакета, используя префикс src:
. .
Я бы установил следующую запись закрепления, если бы Buster уже поддерживал ее для предпочтения пакетов Ceph 14 (из бэкпортов) устаревшим пакетам v12 из стабильной версии, например:
Package: src:ceph
Pin: version 14.*
Pin-Priority: 1002
Намного лучше, чем перечислять пакеты десятки бинарных пакетов, сгенерированных из одного источника.
Я проверил более новый apt и, к сожалению, даже с этой новой функцией apt source
по-прежнему игнорирует закрепление. :-(