Иногда вы можете случайно обновить пакеты, которые не были обновлены из-за зависимости приложения.
Это всегда происходит во время полного обновления системы или автоматического обновления пакетов.
Если это произойдет, это может нарушить работоспособность приложений.
Это создает серьезную проблему, и вам нужно потратить много времени на ее решение.
Как избежать такой ситуации?
Как исключить пакеты из обновления apt-get?
Это можно сделать с помощью следующих трех методов, которые мы покажем дальше в системах Debian и Ubuntu.
Ранее мы рассмотрели решение этой проблемы на RPM системах.
📦 Три способа как исключить определенные пакеты из обновления Yum Update
Метод 1: Как исключить обновление пакетов в системе Debian / Ubuntu с помощью команды apt-mark
Apt-mark используется для того, чтобы пометить / снять пометку с пакета как автоматически установленного.
Параметр Hold используется для пометки пакета как заблокированного, что предотвращает автоматическую установку, обновление или удаление пакета.
Опция unhold используется для отмены ранее установленного удержания пакета и повторения всех действий.
Выполните следующую команду, чтобы сохранить данный пакет, используя команду apt-mark.
$ sudo apt-mark hold nano nano set on hold.
Если у вас есть несколько пакетов, выполните следующую команду apt-mark, чтобы просмотреть их.
$ sudo apt-mark showhold nano
Вывод показывает, что пакет «nano» не будет обновлен при полном обновлении системы.
$ sudo apt update Reading package lists… Done Building dependency tree Reading state information… Done Calculating upgrade… Done The following packages have been kept back: nano 0 upgraded, 0 newly installed, 0 to remove and 1 not upgraded.
$ sudo apt-mark unhold nano Canceled hold on nano.
Способ 2: Как исключить обновление пакетов в системе Debian / Ubuntu с помощью команды dpkg
Команда dpkg – это инструмент CLI для установки, сборки, удаления и управления пакетами Debian.
Основной и более удобный интерфейс для dpkg – это aptitude.
Синтаксис:
$ echo "package_name hold" | sudo dpkg --set-selections
Запустите приведенную ниже команду dpkg, чтобы сохранить пакет «apache2».
$ echo "apache2 hold" | sudo dpkg --set-selections
$ sudo dpkg --get-selections | grep "hold" apache2 hold
$ sudo apt update Reading package lists… Done Building dependency tree Reading state information… Done Calculating upgrade… Done The following packages have been kept back: apache2 0 upgraded, 0 newly installed, 0 to remove and 1 not upgraded.
$ echo "package_name install" | sudo dpkg --set-selections
$ echo "apache2 install" | sudo dpkg --set-selections
Метод 3: Как исключить обновление пакетов в системе Debian / Ubuntu с помощью команды aptitude
Команда aptitude представляет собой текстовый интерфейс управления пакетами для Debian и его производных.
Команда позволяет пользователю просматривать список пакетов и выполнять задачи управления пакетами, такие как установка, обновление и удаление пакетов.
Действия могут быть выполнены из визуального интерфейса или из командной строки.
Выполните следующую команду, чтобы сохранить данный пакет, используя команду aptitude.
$ sudo aptitude hold python3
Если у вас есть несколько пакетов, выполните следующую команду aptitude, чтобы просмотреть их.
$ sudo dpkg --get-selections | grep "hold" или $ sudo apt-mark showhold python3
$ sudo apt update Reading package lists… Done Building dependency tree Reading state information… Done Calculating upgrade… Done The following packages have been kept back: python3 0 upgraded, 0 newly installed, 0 to remove and 1 not upgraded.
$ sudo aptitude unhold python3