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

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

4 min read Linux Обновлено 04 Dec 2025
Запретить обновления пакетов в Arch Linux
Запретить обновления пакетов в Arch Linux

Кратко (TL;DR)

Если после обновления система ломается или вы просто хотите зафиксировать проверенную версию пакета, добавьте его в IgnorePkg/IgnoreGroup в /etc/pacman.conf для постоянной блокировки или используйте –ignore/–ignoregroup при однократном обновлении. Это даёт точечный контроль над обновлениями ядра, критичных библиотек и приложений.

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

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

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

Кратко о терминологии:

  • Pacman — менеджер пакетов Arch (конфиг в /etc/pacman.conf).
  • IgnorePkg / IgnoreGroup — параметры pacman.conf, которые запрещают обновление указанных пакетов или групп.

Постоянная блокировка пакета через pacman.conf

Файл конфигурации Pacman: /etc/pacman.conf. Откройте его редактором (в примерах используется vim):

sudo vim /etc/pacman.conf

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

IgnorePkg = nano

Для нескольких пакетов:

IgnorePkg = nano vim linux

Строка выше запретит дальнейшие обновления nano, vim и текущего ядра linux. Для групп пакетов используйте IgnoreGroup:

IgnoreGroup = kde-applications

Сохраните файл и выйдите. Pacman по-прежнему позволит вручную установить игнорируемый пакет (pacman -S packagename) и предложит подтвердить замену, если вы решите переопределить IgnorePkg.

Пример: откат и фиксация версии

Если после обновления пакет стал причиной проблем, вы можете откатить его к предыдущей версии (например, из кеша pacman в /var/cache/pacman/pkg/) и затем добавить его в IgnorePkg, чтобы не получить сломанную версию снова.

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

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

sudo pacman -Syyu --ignore=linux

Несколько пакетов через запятую:

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

Группы:

sudo pacman -Syyu --ignoregroup=kde-applications

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

Примечание: –ignore действует только для конкретного запуска pacman; он не меняет /etc/pacman.conf.

Когда блокировка может не помочь или привести к проблемам

  • Зависимости: если обновлённый пакет требует более новой версии игнорируемого пакета, pacman может не разрешить обновление или предложить удалить конфликтующие пакеты.
  • Безопасность: игнорирование пакета лишит вас автоматических исправлений уязвимостей.
  • Совместимость: долго игнорируемые пакеты могут стать несовместимы с другими компонентами системы.

Если система использует сторонние репозитории (например, Chaotic-AUR, custom repos), учтите, что политики версий и зависимости там могут отличаться.

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

  • Использовать snapshot-репозитории или локальный mirror с контролем версий, чтобы откатываться ко всему состоянию системы.
  • Использовать pacman -U для установки конкретных версий пакетов из кеша (/var/cache/pacman/pkg/) или из локального архива.
  • Применять контейнеризацию (Docker, Podman) для критичных сервисов, чтобы обновления хоста не влияли на рабочую среду.
  • Для рабочих станций: делать бэкапы и снапшоты Btrfs/LVM перед обновлениями.

Пошаговая мини-методика для администраторов

  1. Оцените критичность пакета (ядро, драйвер, база данных).
  2. Если нужно временно пропустить — используйте –ignore при обновлении.
  3. Для долгосрочной фиксации — добавьте пакет в IgnorePkg/IgnoreGroup в /etc/pacman.conf.
  4. Документируйте изменения (что и зачем заблокировано, дата, ответственный).
  5. Мониторьте CVE/обновления безопасности для игнорируемых пакетов и периодически пересматривайте блокировку.

Чек-листы по ролям

  • Домашний пользователь:

    • Знать, какие пакеты критичны (ядро, видеодрайверы).
    • Использовать временное –ignore для одиночных обновлений.
    • Хранить резервную копию конфигураций.
  • Системный администратор:

    • Документировать IgnorePkg/IgnoreGroup и причину блокировки.
    • Планировать тестовые обновления в staging перед rollout.
    • Подписаться на уведомления безопасности для игнорируемых пакетов.
  • Разработчик/DevOps:

    • Использовать контейнеры или VM для тестирования новых версий.
    • Поддерживать локальные зеркала для отката образов.

Decision flow: когда блокировать постоянно, а когда временно

flowchart TD
  A[Наблюдается проблема после обновления?] -->|Да| B{Нужен откат на время}
  B -->|Да| C[Откатить пакет из кеша и временно --ignore]
  B -->|Нет| D[Добавить в IgnorePkg для длительной фиксации]
  A -->|Нет| E{Пакет критичен для безопасности?}
  E -->|Да| F[Не блокировать — обновить и тестировать]
  E -->|Нет| G[Можно временно игнорировать при обновлении]

Примеры команд и полезные подсказки

  • Открыть конфиг:
sudo EDITOR=vim visudo >/dev/null 2>&1 || true
sudo vim /etc/pacman.conf
  • Просмотреть локальные пакеты в кеше pacman:
ls -l /var/cache/pacman/pkg | grep <имя_пакета>
  • Установить конкретную версию пакета:
sudo pacman -U /var/cache/pacman/pkg/package-name-version.pkg.tar.zst

Безопасность и соответствие (коротко)

Блокирование пакетов уменьшает удобство автоподдержки безопасности. Для серверов и критичных систем комбинируйте блокировку с мониторингом CVE и плановыми ревизиями зависимости.

Локальные пометки и совместимость

  • Если вы используете AUR-пакеты, помните: AUR не управляется pacman напрямую; для AUR-обновлений используйте помощники (yay, paru) и их собственные механизмы игнорирования или фиксации версий.
  • При переходе с Debian/RHEL ожидание автоматической стабилизации пакетов может вводить в заблуждение — Arch требует более активного управления зависимостями.

prevent package upgrades in arch linux Рисунок: рабочая среда с терминалом и настройкой pacman — пример, где пользователю может понадобиться зафиксировать пакет.

pacman configuration file Рисунок: фрагмент /etc/pacman.conf с параметрами IgnorePkg и IgnoreGroup.

Краткое резюме

  • Для постоянной блокировки: отредактируйте /etc/pacman.conf и добавьте IgnorePkg/IgnoreGroup.
  • Для однократного исключения: используйте –ignore или –ignoregroup в команде pacman.
  • Документируйте причины блокировки и следите за обновлениями безопасности для игнорируемых пакетов.

Ключевой совет: блокируйте только тогда, когда это действительно нужно, и регулярно пересматривайте решения, чтобы не пропустить важные исправления.

Глоссарий (одной строкой)

  • pacman: стандартный менеджер пакетов в Arch Linux;
  • AUR: Arch User Repository — сообщественный репозиторий пакетов;
  • IgnorePkg/IgnoreGroup: опции pacman.conf для предотвращения обновлений пакетов/групп.
Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

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

RDP: полный гид по настройке и безопасности
Инфраструктура

RDP: полный гид по настройке и безопасности

Android как клавиатура и трекпад для Windows
Гайды

Android как клавиатура и трекпад для Windows

Советы и приёмы для работы с PDF
Документы

Советы и приёмы для работы с PDF

Calibration в Lightroom Classic: как и когда использовать
Фото

Calibration в Lightroom Classic: как и когда использовать

Отключить Siri Suggestions на iPhone
iOS

Отключить Siri Suggestions на iPhone

Рисование таблиц в Microsoft Word — руководство
Office

Рисование таблиц в Microsoft Word — руководство