Очень важно поддерживать систему Ubuntu в актуальном состоянии, но иногда вы можете захотеть отключить автоматическую установку, обновление или удаление некоторых пакетов. Это может быть необходимо по следующим причинам:
- Вам нужна конкретная версия для совместимости,
- Вы хотите избежать потенциальных ошибок в новых обновлениях,
- Вы настроили пакет и не хотите вносить изменения.
Вот несколько простых способов блокировки пакетов в Ubuntu и её производных, таких как elementary OS, Linux Mint, Pop!_OS и Zorin OS. Эти способы научат вас, как предотвратить установку пакета:
- Автоматически устанавливается (даже как зависимость),
- Автоматическое обновление,
- Случайно удален.
Примечание: Пожалуйста, имейте в виду, что в рабочей среде не рекомендуется приостанавливать обновление пакетов. Устаревшие пакеты могут быть уязвимы и вызывать проблемы с безопасностью. Поэтому всегда рекомендуется поддерживать систему Ubuntu в актуальном состоянии.
Способ 1: Заблокируйте упаковку с apt-mark hold
Чтобы заблокировать автоматическую установку, обновление или удаление пакета, мы можем использовать команду ‘apt-mark’. У этой команды есть множество опций. Подробную информацию о каждой опции можно найти в справочных страницах.
man apt-mark
В этом руководстве мы рассмотрим только два варианта: удержание и отпускание.
- удерживать — блокировать установку, обновление, модернизацию или удаление любого пакета.
- отменить блокировку — снять блокировку с пакета и разрешить нам установить, обновить или удалить этот пакет.
Давайте пометим (сохраним) пакет, например htop, как показано ниже.
sudo apt-mark hold htop
Пример вывода:
htop set on hold.
Заблокированный пакет останется в той же версии даже после обновления вашей системы. Этот трюк может быть очень полезен при использовании графических драйверов.
Чтобы проверить, какие пакеты находятся в режиме ожидания:
apt-mark showhold
Чтобы развернуть (разморозить) упаковку, просто запустите:
sudo apt-mark unhold htop
Пример вывода:
Canceled hold on htop.
Обратите внимание, что этот метод не позволяет обновлять пакет, но его можно удалить или переустановить вручную. Вы можете удалить заблокированные пакеты с помощью команды «apt-get remove <имя_пакета>».
Этот метод позволяет только предотвратить автоматическую установку, обновление, модернизацию или удаление приложения во время обновления системы.
Удержание пакета фактически означает, что вы сообщаете менеджеру пакетов, что хотите сохранить текущую версию, несмотря ни на что, даже если доступна новая версия. Это полезно, если последняя версия работающей в данный момент программы не работает после обновления.
Когда вы попытаетесь обновить систему с помощью команд sudo apt update
или sudo apt upgrade
, отмеченные пакеты останутся той же версии, что и на момент установки пакета.
Способ 2: Заблокируйте пакет с помощью dpkg
, чтобы предотвратить любые изменения
Этот метод блокирует установку, обновление или удаление пакета, устанавливая его статус в базе данных пакетов.
Чтобы заморозить упаковку, запустите:
echo "firefox hold" | sudo dpkg --set-selections
Чтобы подтвердить, что он заблокирован:
dpkg --get-selections | grep firefox
Пример вывода:
firefox hold
Чтобы снять блокировку:
echo "firefox install" | sudo dpkg --set-selections
Этот метод хорошо работает, если вы управляете несколькими компьютерами и используете пользовательские скрипты.
Способ 3: Запретить установку пакета (блокировка APT)
Используйте это, если вы хотите полностью заблокировать пакет, даже если он является зависимостью.
Откройте новый файл настроек:
sudo nano /etc/apt/preferences.d/block-firefox
Добавьте следующие строки:
Package: firefox Pin: release * Pin-Priority: -1
Сохраните файл и выйдите из него, нажав Ctrl+O
, Enter
затем Ctrl+X
.
Чтобы подтвердить, что он заблокирован, выполните следующую команду:
apt-cache policy firefox
Вы должны увидеть:
Package: firefox Pin: release * Pin-Priority: -1
Метод 4: Предотвратите обновления пакетов с помощью Synaptic (метод GUI)
Если в вашей системе установлен менеджер пакетов Synaptic, вы можете легко заблокировать установку, обновление, модернизацию или удаление пакета, как описано ниже.
Откройте менеджер Synaptic в панели Unity или в меню. Найдите пакет, который вы хотите заблокировать. Затем перейдите в раздел «Пакет» в строке меню и нажмите «Заблокировать».

Запретить автоматическую установку, обновление или удаление пакета с помощью Synaptic в Ubuntu
Вот и всё. Теперь пакет не будет затронут во время обновления системы, пока вы удерживаете его.
Если в вашей системе не установлен менеджер пакетов Synaptic, вы можете установить его с помощью команды:
sudo apt-get install synaptic
Проверка ваших изменений
Установив удержание, протестируйте его, запустив:
sudo apt upgrade
Ваша удерживаемая посылка должна отображаться в списке, но не как обновлённая, а как удерживаемая.
Важные примечания
Эти методы предотвращают только автоматическое обновление. Вы по-прежнему можете обновлять заблокированные пакеты вручную. Будьте осторожны при блокировке критически важных системных пакетов, так как это может привести к проблемам с безопасностью.
Чтобы временно обойти блокировки во время обновления, используйте:
sudo apt-get -o DPkg::Options::="--force-overwrite" install package_name
Не забывайте периодически проверять сохранённые пакеты (apt-mark showhold
) и удалять их, когда они больше не нужны для обеспечения безопасности вашей системы.
- Всегда сначала тестируйте изменения в некритичных системах.
- Не блокируйте необходимые пакеты, если вы не уверены.
- Эти методы обратимы, просто выполните действия в обратном порядке.
Заключение
Теперь вы знаете, как предотвратить установку, обновление или удаление пакета во время обновления системы в Ubuntu и её производных.
Это хорошая практика, если вы обнаружили, что последняя версия определённого пакета нестабильна или нарушает работу системы. Вы можете просто заблокировать пакеты с помощью команды apt-mark
, чтобы менеджеры пакетов не трогали их до тех пор, пока вы их не разблокируете.