Одинаковый пакет из двух разных PPA в sources.list.d; как принудительно установить из одного конкретного PPA? [дубликат]

На этот вопрос уже есть ответ здесь:

Проблема:

Допустим, у меня есть PPA для программного обеспечения (например, Blender; http://ppa.launchpad.net/thomas-schiex/blender/ubuntu ), которое по некоторым причинам содержит версию Python3.6.

Чего я хочу достичь:

Допустим, мне нужен «лучший» пакет Python3.6, например, из выделенного ppa для python, в моем случае; http://ppa.launchpad.net/jonathonf/python-3.6/ubuntu

Вопрос:

Как apt выбирает, какой пакет установить, и есть ли способ скажите apt установить его с одного желаемого ppa на другие?
Думаю, он выберет самый последний пакет (я ошибаюсь?), но что, если по каким-то причинам я хочу сохранить конкретную старую версию?

Пример с python3.6 является здесь «только» примером, это может быть полезно для любых пакетов.

Примечание о дублировании:
Даже если ответ в предложенных ссылках в комментариях такой же, точки входа, то есть «вопрос», отмечены точно так же, и многие люди могут прийти к ответу через этот результат поиска вместо другого. Так что, по моему скромному мнению, строго говоря, ответ в некоторой степени дублирован, а не вопрос.

5
задан 16 August 2018 в 00:03

1 ответ

Поскольку Вы предположили apt движение должно установить последнюю версию, доступную в Ваших источниках.

Например:

$ apt-cache madison firefox

   firefox | 61.0.1+build1-0ubuntu0.18.04.1 | http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 Packages
   firefox | 61.0.1+build1-0ubuntu0.18.04.1 | http://security.ubuntu.com/ubuntu bionic-security/main amd64 Packages
   firefox | 59.0.2+build1-0ubuntu1 | http://archive.ubuntu.com/ubuntu bionic/main amd64 Packages

Поскольку Вы видите, что существует две других версии Firefox, доступного для меня для установки, давайте проверим, какой будет установленным:

$ apt-cache policy firefox | head -3
firefox:
  Installed: (none)
  Candidate: 61.0.1+build1-0ubuntu0.18.04.1

Поскольку Вы видите, что последняя версия будет установленной (это - кандидат на установку),

Можно использовать:

sudo apt install package-name=version

например:

sudo apt install firefox=59.0.2+build1-0ubuntu1

устанавливать более старую версию программного обеспечения.

Как альтернатива увяданию, Вы можете apt-mark мешать ему быть обновленным:

sudo apt-mark hold firefox
6
ответ дан 23 November 2019 в 09:11

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

Похожие вопросы: