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

Как запретить обновление пакетов в 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
Автор
Редакция

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

Как перенести данные на iPhone 13
Мобильные устройства

Как перенести данные на iPhone 13

Защита секретов в Git: лучшие практики
Безопасность

Защита секретов в Git: лучшие практики

Twitch Watch Party с VPN: настройка и проблемы
Стриминг

Twitch Watch Party с VPN: настройка и проблемы

Изменить стиль часов на экране блокировки Samsung
Android.

Изменить стиль часов на экране блокировки Samsung

Как запустить Fortnite на неподдерживаемой Windows
Гайды

Как запустить Fortnite на неподдерживаемой Windows

Как скопировать лист Excel без формул
Excel

Как скопировать лист Excel без формул