Гид по технологиям

Как предотвратить обновление пакетов в Arch Linux

5 min read Arch Linux Обновлено 07 Jan 2026
Предотвратить обновление пакетов в Arch Linux
Предотвратить обновление пакетов в Arch Linux

Зачем блокировать обновления пакетов в Arch Linux

Arch Linux — это дистрибутив с моделью rolling release: пакеты обновляются быстро после выхода новой версии. Это даёт свежие версии программ, но увеличивает вероятность попадания в систему плохо проверённого обновления. Если у вас есть версия пакета, которая стабильна и совместима с вашей системой, имеет смысл зафиксировать её, чтобы избежать неожиданного простоя.

Коротко о терминах:

  • Rolling release — модель распространения обновлений, где пакеты приходят непрерывно.
  • IgnorePkg и IgnoreGroup — параметры в конфигурации pacman, которые запрещают обновление указанных пакетов или групп.

Основной способ: редактирование /etc/pacman.conf

Файл конфигурации pacman управляет поведением пакетного менеджера. Чтобы навсегда запретить обновления конкретного пакета, откройте файл и добавьте пакет в IgnorePkg.

Откройте файл любым редактором:

sudo vim /etc/pacman.conf

Найдите участок с комментарием, похожим на строку: “Pacman won’t upgrade packages listed in IgnorePkg and members of IgnoreGroup.” Затем раскомментируйте и отредактируйте строку IgnorePkg.

Предотвращение обновления пакетов в Arch Linux

Пример для одного пакета:

IgnorePkg  = nano

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

IgnorePkg  = nano vim linux

Это предотвратит обновление nano, vim и текущего ядра linux. Сохраните файл и выйдите из редактора.

Для игнорирования целой группы пакетов используйте IgnoreGroup:

IgnoreGroup  = kde-applications

Если вам потребуется снять блокировку, просто удалите соответствующие имена из IgnorePkg и IgnoreGroup и сохраните файл.

Файл конфигурации pacman (/etc/pacman.conf)

Важно: если вы вручную попытаетесь установить пакет через pacman -S имя_пакета, pacman предупредит, что пакет находится в IgnorePkg и спросит, хотите ли вы принудительно обновить его. Вы всегда можете временно обойти игнорирование в интерактивном режиме.

Временное исключение пакета при обновлении системы

Если нужно пропустить пакет лишь раз, используйте флаги командной строки pacman без изменения конфигурации.

Пример, чтобы пропустить обновление ядра при полном обновлении системы:

sudo pacman -Syyu --ignore=linux

Чтобы игнорировать несколько пакетов, укажите их через запятую:

sudo pacman -Syyu --ignore=linux,vim,nano

Для групп пакетов существует аналогичный флаг –ignoregroup:

sudo pacman -Syyu --ignoregroup=kde-applications

Чтобы позднее обновить пакет, просто выполните команду без флагов –ignore или –ignoregroup.

Что делать, если пакет уже сломал систему

Если обновление привело к проблемам, чаще всего полезно выполнить откат на предыдущую версию пакета и затем заблокировать его.

Варианты действий:

  • Установить предыдущую версию из кеша pacman, если пакет ещё есть в /var/cache/pacman/pkg:
    sudo pacman -U /var/cache/pacman/pkg/имя-пакета-версия.pkg.tar.zst
  • Использовать скрипт или утилиту downgrade из AUR для поиска и установки старых версий.
  • При необходимости собрать пакет из PKGBUILD с нужной версией.

После отката добавьте пакет в IgnorePkg, чтобы обновление не повторилось неожиданно.

Быстрый справочник команд

# Открыть конфиг pacman
sudo vim /etc/pacman.conf

# Временно пропустить пакет при полном обновлении
sudo pacman -Syyu --ignore=linux,vim

# Принудительно установить пакет из кеша
sudo pacman -U /var/cache/pacman/pkg/имя-пакета-версия.pkg.tar.zst

# Найти строки Ignore в конфиге
grep -E "^Ignore" /etc/pacman.conf

Альтернативные подходы и когда они применимы

  • Временное игнорирование (–ignore) — подходит для единичных сеансов обновления и быстрых исключений.
  • Редактирование pacman.conf (IgnorePkg/IgnoreGroup) — подходит для долгосрочной стабилизации критичных пакетов.
  • Использование кеша /var/cache/pacman/pkg и pacman -U или AUR-утилит для отката — когда нужно вернуть рабочую версию.

Когда этот подход не поможет:

  • Если проблема ядра или драйвера требует патча, а не отката; игнорирование лишь отсрочит решение.
  • Если пакет имеет зависимости, которые требуют обновления — игнорирование может вызвать конфликты при установке других пакетов.

Ментальные модели и плоскости принятия решения

  • Rolling release = быстрота обновлений + риск.
  • IgnorePkg = «заморозка» пакета на вашей проверенной версии.
  • –ignore = «пропустить на один раз», без долговременных изменений.

Решение принято по простой эвристике:

  • Если пакет критичен для работы системы и новая версия вызывает сбои — используйте IgnorePkg.
  • Если обновление одноразовое или экспериментальное — используйте –ignore.

Роли и контрольные списки

Для обычного пользователя:

  • Оценить, мешает ли обновление вам сейчас.
  • Использовать –ignore при необходимости.

Для системного администратора:

  • Добавить критичные пакеты в IgnorePkg на всех серверах после тестирования.
  • Документировать причины блокировки и план по обновлению.

Для разработчика/тестировщика:

  • Отслеживать баги в upstream и планировать обновление после исправления.
  • Использовать тестовую машину для приёма обновлений прежде чем менять продакшен.

Шаблон принятия решения (Mermaid)

flowchart TD
  A[Обновление доступно] --> B{Нужна ли новая версия?}
  B -- Да --> C[Обновить]
  B -- Нет --> D{Риск для системы?}
  D -- Высокий --> E[Добавить в IgnorePkg]
  D -- Низкий --> F[Обновить с мониторингом]
  E --> G[Документировать причину]
  C --> H[Мониторить]
  F --> H

Критерии приёмки

  • Пакет больше не появляется в списке пакетов для автоматического обновления при pacman -Syu.
  • При попытке установить пакет вручную pacman предупреждает об IgnorePkg и спрашивает подтверждение.
  • При удалении пакета из IgnorePkg обновления снова применяются.

Часто задаваемые вопросы

Как временно обновить пакет, который стоит в IgnorePkg?

Попробуйте выполнить sudo pacman -S имя-пакета: pacman спросит, хотите ли вы принудительно обновить пакет, несмотря на IgnorePkg. Также можно временно удалить имя из IgnorePkg, выполнить обновление и вернуть строку обратно.

Как узнать, какие пакеты сейчас игнорируются?

Выполните:

grep -E "^Ignore" /etc/pacman.conf

Это покажет строчки IgnorePkg и IgnoreGroup из конфигурации.

Как откатить пакет до предыдущей версии?

Проверьте наличие нужного пакета в кеше /var/cache/pacman/pkg и установите его через pacman -U. Если в кеше нет пакета, рассмотрите утилиту downgrade из AUR или сборку из PKGBUILD.

Итог и рекомендации

Блокировка обновлений — простой и эффективный инструмент для сохранения стабильности в Arch Linux. Используйте IgnorePkg и IgnoreGroup для долгосрочной фиксации версий и –ignore/–ignoregroup для разовых исключений. Документируйте причины и план обновления, чтобы в будущем вернуть пакет в актуальное состояние после тестирования.

Important: регулярно проверяйте обновления безопасности и совместимость зависимостей — блокировка пакета не должна служить заменой поддержке и мониторингу.

Короткая шпаргалка:

  • Для постоянного запрета — редактируйте /etc/pacman.conf и добавьте IgnorePkg/IgnoreGroup.
  • Для разового пропуска — используйте –ignore и –ignoregroup.
  • Для отката — используйте кеш pacman или утилиты для старых пакетов.
Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Разбить диск в Windows 10 через DiskPart
Инструкции

Разбить диск в Windows 10 через DiskPart

Контекстные менеджеры в Python — руководство
Python

Контекстные менеджеры в Python — руководство

Добавить фото и видео в Highlights без спама
Социальные сети

Добавить фото и видео в Highlights без спама

Отключить Firefox View — как убрать вкладку
Браузеры

Отключить Firefox View — как убрать вкладку

Подмена местоположения iPhone/iPad — AnyGo
iOS

Подмена местоположения iPhone/iPad — AnyGo

Отключить USB‑накопители: Windows, macOS, Linux
Безопасность

Отключить USB‑накопители: Windows, macOS, Linux