Один и тот же пакет из 2 разных 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 является "единственным" примером здесь, это может быть полезно для любых пакетов.

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

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
Другие вопросы по тегам