Один и тот же пакет - несколько репо

11

Из какого репозитория Ubuntu выберет загрузку пакета, если один и тот же пакет доступен в нескольких репо? Предположим, что пакет A был изначально установлен из репозитория X, а позже я добавил репо Y, в котором также есть пакет A. Какое репо будет выбрано для обновления пакета? Кроме того, если я полностью удаляю этот пакет и пытаюсь переустановить, то какое хранилище предпочтет Ubuntu для установки пакета?

7_R3X
источник

Ответы:

12

По умолчанию устанавливается пакет с наивысшим номером версии, независимо от того, из какого хранилища он поступил, если только его номер версии не ниже текущей установленной версии пакета (это может произойти, например, если вы загрузили более высокую версию как .debпакет и установил его вручную). В очень маловероятном случае, когда несколько репозиториев имеют одинаковую (самую высокую) версию пакета, пакет устанавливается из того, который указан первым в sources.listфайле.

Однако вы можете изменить это, назначив разный приоритет некоторым пакетам на основе различных критериев. Предыдущий абзац верен с настройками по умолчанию, потому что по умолчанию все пакеты имеют приоритет 500. Однако, если разные версии пакета имеют разные приоритеты, будет установлена ​​версия с наивысшим приоритетом, а номера версий будут использоваться только как связующие. прерыватели, если несколько версий имеют одинаковый (наивысший) приоритет. Кроме того, если пакет с наивысшим приоритетом имеет приоритет как минимум 1000, он будет установлен, даже если его версия ниже версии, установленной в данный момент.

Приоритеты управляются /etc/apt/preferencesи документируются в man apt_preferences. Смотрите мой ответ здесь для примера того, как они могут быть использованы.

fkraiem
источник
Обратите внимание, что в документации сказано, что она присваивает приоритет 990 версиям, которые относятся к целевому выпуску. Поэтому не 500, как вы сказали здесь ( потому что по умолчанию все пакеты имеют приоритет 500 ). Это 500, только если это не правильная цель.
Алексис Уилке
@AlexisWilke По умолчанию нет целевой версии.
Фракием