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

Это всегда происходит во время полного обновления системы или автоматического обновления пакетов.

Если это произойдет, это может нарушить работоспособность приложений.

Это создает серьезную проблему, и вам нужно потратить много времени на ее решение.

Как избежать такой ситуации?

Как исключить пакеты из обновления 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.
Выполните следующую команду, чтобы снять с блокировки пакет «nano» с помощью команды apt-mark.
$ 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
Вывод покажет, что пакет «apache2» не будет обновлен при полном обновлении системы.
$ 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.
Выполните следующую команду, чтобы открепить данный пакет, используя команду dpkg.
Синтаксис
$ echo "package_name install" | sudo dpkg --set-selections
Выполните следующую команду, чтобы снять с блокировки пакет «apache2» с помощью команды dpkg.
$ 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
Вывод покажет, что пакет «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.
Выполните следующую команду, чтобы снять пакет с блокировки «python3» с помощью команды apt-mark.
$ sudo aptitude unhold python3

 

Поделитесь статьей:

Добавить комментарий