Содержание

Как зафиксировать версию и запретить обновление определённого пакета в Debian/Ubuntu Linux

При работе с менеджером deb-пакетов Advanced Packaging Tool (APT) могут возникать ситуации, когда нужно зафиксировать какой-либо установленный пакет на текущей версии и запретить обновление этого пакета при последующих регулярных обновлениях системы командами типа apt-get update && apt-get upgrade или aptitude update && aptitude upgrade. Существует несколько вариантов выполнить данную задачу в зависимости от используемых инструментов работы с пакетной базой.


Блокировка версии с apt-mark

В базовом наборе утилит APT за запрет обновлений пакетов отвечает утилита apt-mark.

Чтобы зафиксировать текущую версию и заблокировать обновление пакета, например с именем «nano», выполним:

# apt-mark hold nano

Чтобы снять блокировку пакета, выполним:

# apt-mark unhold nano

Чтобы показать все зафиксированные пакеты с меткой hold:

# apt-mark showhold


Блокировка версии с aptitude

В оболочке Aptitude (оболочка для APT) есть свои команды для работы с меткой «hold».

Чтобы получить список зафиксированных пакетов, выполним:

# aptitude search "~ahold"

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

Для снятия с фиксации определённого пакета, можем выполнить команду вида:

# aptitude unhold nano


Блокировка версии с synaptic

Если используется какая-либо графическая оболочка, то для управления пакетами может использоваться графическая утилита Synaptic. Здесь можно выделить нужный пакет и в меню «Пакет» выбрать пункт «Заблокировать версию».


Проверено на следующих конфигурациях:

Версия ОС Linux Версия APT
Debian GNU/Linux Buster 10.11 apt 1.8.2.3 (amd64)
Debian GNU/Linux Bullseye 11.2 apt 2.2.4 (amd64)

Автор текущей редакции:
Алексей Максимов
Время публикации: 16.03.2022 13:27