Как понизить пакет через apt-get?


309

Как я могу понизить пакет до более старой версии через apt-get?

Другие инструменты также приемлемы, но apt-getпредпочтительнее.

Ответы:


307

Если у вас есть номер версии или целевой выпуск, вы можете apt-getвыбрать конкретную версию или целевой выпуск. Более подробную информацию можно найти на странице руководства apt-get . Вы также можете получить доступ из терминала, набравman apt-get

sudo apt-get install <package-name>=<package-version-number> ИЛИ ЖЕ

sudo apt-get -t=<target release> install <package-name>

команда для запуска Это может быть использовано для понижения пакета до определенной версии.

В комментариях было полезно указать, что

  • apt-cache showpkg <package-name>перечисляет все доступные версии. (ч / т Sparhawk )
  • apt-mark hold <package-name> «держит» пакет в текущей версии, предотвращая автоматическое обновление. (ч / т Луис де Соуза )

58
Также используйте apt-cache showpkg <package-name>список доступных версий.
— Sparhawk

16
И после этого вы также можете запустить: apt-mark hold <package-name>чтобы избежать автоматических обновлений.
— Луис де Соуза

4
Я обнаружил, что aptitudeпонизил зависимости лучше, чем apt-get.
— Криспи

5
apt-cache policy <package-name>показывает только установленные и доступные версии
— Майкл Лоутон

18
А что, если showpkgне показывает интересующую вас версию?
— демонголем

104

ИСПОЛЬЗОВАНИЕ

apt-get install «pkg»=«version»

ИЛИ ЖЕ

sudo aptitude install «pkg»=«version»

Где «pkg» - это название пакета, а «version» - номер версии.


3
когда я apt-get install pkg=versionнабираю apt-get, предложения удаляют почти половину всех установленных пакетов, что, конечно, не то, что я хочу сделать
— Dfr

Как указано в (иначе идентичном) ответе с большим количеством голосов, это, кажется, один из ключевых случаев, когда работа aptitudeнамного лучше, чем apt-get. В моем случае apt-getкатегорически отклонил запрос на понижение версии, тогда как aptitudeуказал, что существуют другие pkgs, которые зависят от более новой версии (и, следовательно, требуют понижения в то же время).
— sxc731

28

Если вы обновили программное обеспечение с помощью ppa, вы можете понизить его с помощью ppa-purge. Сначала вы должны установить, ppa-purgeиспользуя этот код:

sudo apt-get установить ppa-purge

Затем вы можете удалить ppa с помощью команды

sudo ppa-purge ppa: пользователь / имя ppa

это автоматически понизит версию программного обеспечения до его первоначальной версии, поставляемой с Ubuntu.


1
Это решение не имеет себе равных в случае, если пакет имеет зависимости, которые также должны быть понижены. Спасибо!
— и

1
Да, это решение, которое лучше всего подействовало на меня для понижения рабочего стола KDE / Plasma с kubuntu-ppa / backports - одна вещь, которую я заметил, это то, что в файле .list PPA не должно быть закомментировано deb, поэтому ppa-purge может ссылаться на все файлы что нужно убрать для чистки. Мне потребовалась минута, чтобы понять, почему сначала это не сработало. Надеюсь, что это помогает другим людям!
— AveryFreeman

10

Чтобы понизить рейтинг, вы должны выполнить команду вроде

 sudo apt-get install pkg_name=version

в вашем терминале.

Вместо того, чтобы versionпоставить предыдущую версию вы хотите понизить до.


Это не работает по крайней мере для linux-generic, который зависит от пакетов, которые также должны быть понижены. Я получаю paste.ubuntu.com/p/NWSmf2ZwTy
— mymedia

9

На мой взгляд, вы должны сначала удалить или очистить пакет, например:

sudo apt-get remove <package>

или же

sudo apt-get purge <package>

Затем вы можете скачать версию, которую хотите установить, и сохранить ее в папке, например, abc.debв разделе « Загрузки». Откройте терминал, перейдите в папку с помощью cdкоманды и установите предыдущую версию, используя dpkg:

sudo dpkg -i abc.deb

Или есть небольшая утилита, которая вызывается, ppa-purgeесли вы хотите понизить версию пакетов, обновленных через PPA.

Смотрите эту ветку: http://www.webupd8.org/2009/12/remove-ppa-repositories-via-command.html


3
Удаление пакета может удалить много зависимых, что приведет к непригодности системы. ppapurge звучит интересно, хотя.
— введите

12
Можете ли вы объяснить, почему вы считаете, что мы должны сначала удалить пакеты (как отдельный шаг) перед установкой старых версий?
— Элия ​​Каган


1
@temoto эта ссылка для понижения версий unstable-> testing-> stableчтобы не понижать версии отдельных пакетов.
— Брайам

0

Этот вопрос старый, но Google привел меня сюда, и я не нашел простого решения, которое не требует ручной передачи версии при понижении пакета пакетов до более старой версии.

Так что, возможно, кому-то, кому это тоже нужно, тоже пригодится мое решение.

Существует инструмент под названием, apt-show-versionsкоторый показывает установленные версии.

Вы можете легко понизить все необходимые пакеты, настроив регулярное выражение, но вот оно:

$ sudo apt-get install $(apt-show-versions | grep -P 'newer than version in archive' | awk -F: '{print $1"/jessie"}')

Вместо этого jessieвы можете использовать buster/ xenial/ etc в зависимости от ваших потребностей.


Или автоматически уменьшится до уточненный установлен релиз: sudo apt-get install -V $(apt-show-versions | grep -F 'newer than version in archive' | awk -F: '{print $1"/'$(lsb_release -cs)'"}'). Я предпочитаю использовать -Fдля grepздесь.
— Ярно

Вы должны запустить sudo apt-show-versions -iсначала, если кеш пакета устарел.
— Ярно
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.