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

Как понизить версию пакета в Linux

6 min read Linux Обновлено 07 Jan 2026
Понижение версии пакета в Linux
Понижение версии пакета в Linux

Important: прежде чем понижать пакеты на сервере, снимите снимок системы или резервную копию конфигурации. Откат может повлиять на зависимости и конфигурационные файлы.

Что значит «понизить версию» и зачем это делать

Понижение версии — это установка старой, проверенной версии пакета вместо недавно выпущенной. Причины отката:

  • Новая версия ломает функциональность или добавляет регрессии.
  • Совместимость с другими компонентами нарушена.
  • Срочно нужна стабильность для пользователей или сервисов.

Краткое определение: откат — это переключение установленного пакета на ранее доступную версию в репозиториях или из локального кэша.

Общая стратегия отката

  1. Определите проблему и подтвердите, что она связана с пакетом.
  2. Найдите доступные версии пакета (локально или в репозиториях).
  3. Выполните откат на целевую версию и зафиксируйте пакет, чтобы обновление не произошло автоматически.
  4. Проведите проверку работоспособности (smoke tests) и мониторинг.
  5. Документируйте инцидент и, по возможности, сообщите об ошибке разработчикам.

Когда откат не поможет

  • Ошибка вызвана изменением конфигурации, а не версией пакета.
  • Новая версия требует изменений в данных или схеме, которые нельзя просто вернуться назад.
  • Пакет имеет несовместимые зависимости, которые нельзя привести к предыдущему состоянию без удаления других пакетов.

Понижение пакетов на Debian и Ubuntu

На Debian-подобных системах используется APT. Процесс обычно прост: узнать доступные версии и установить нужную.

Получение списка доступных версий:

apt list -a packagename

Пример для GNOME Terminal:

apt list -a gnome-terminal

Список доступных версий пакета на Ubuntu

Из вывода запишите нужную версию и установите её:

sudo apt install packagename=version

Например:

sudo apt install gnome-terminal=3.36.1.1-1ubuntu1

APT предупредит об откате. Подтвердите «Y» для продолжения. После установки проверьте версию:

gnome-terminal --version

Закрепление версии в APT

Чтобы пакет не обновлялся автоматически, используйте один из подходов.

  1. Удержание пакета через apt-mark:
sudo apt-mark hold packagename

Снять удержание:

sudo apt-mark unhold packagename
  1. Файл предпочтений APT (pinning). Создайте файл, например /etc/apt/preferences.d/hold-packagename:
Package: packagename
Pin: version 1.2.3-1
Pin-Priority: 1001

Pin-Priority 1001 заставляет APT выбирать эту версию и предотвращает обновление.

Когда использовать откат на Debian/Ubuntu

  • Быстрая реакция на регрессию на рабочей станции.
  • На продакшене — как временная мера, пока разработчик не выпустит фикс.

Note: При значительных различиях в зависимостях откат может потребовать ручной корректировки других пакетов.

Понижение пакетов на Arch Linux

Arch хранит кеш загруженных пакетов в /var/cache/pacman/pkg. Это удобно для отката на ранее скачанную версию.

Установка из кэша:

sudo pacman -U /var/cache/pacman/pkg/packagename-old.tar.zst

Поиск пакета через find:

find /var/cache/pacman/pkg -name 'packagename*'

Утилита downgrade

Утилита downgrade упрощает процесс. Установите её из AUR (пример с yay):

yay -S downgrade

И выполните:

sudo downgrade package

Использование downgrade в Arch Linux

Утилита покажет список доступных версий и предложит выбор. Она умеет искать в кэше, AUR и архиве пакетов.

Игнорирование обновлений в pacman

Чтобы pacman не обновлял пакет, добавьте его в IgnorePkg в /etc/pacman.conf:

IgnorePkg   = packagename

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

Альтернативы для Arch

  • Использовать утилиту paru/yay для установки конкретной версии из AUR/архива.
  • Создать локальный репозиторий с нужными версиями и подключить его.

Понижение пакетов на Fedora, RHEL, CentOS

В RPM-системах (yum/dnf/rpm) есть встроенные команды для отката.

Простой откат к предыдущей версии с помощью yum:

sudo yum downgrade packagename

Пример для Firefox:

sudo yum downgrade firefox

Понижение версии пакета в Fedora

Команда переключит пакет на предыдущую доступную версию. Если нужно указать конкретную версию, скачайте нужный RPM с Fedora Koji или другого зеркала и установите вручную:

sudo rpm -Uvh --oldpackage package-version.rpm

В dnf есть аналогичные команды:

sudo dnf downgrade packagename

Если версии недоступны в репозиториях, скачайте RPM и установите вручную. Для нескольких пакетов перечислите их через пробел:

sudo yum downgrade package1 package2 package3

Список пакетов на Fedora Koji

Способы управления стабильностью и откатом на уровне системы

  1. Снимки файловой системы. Btrfs и LVM поддерживают снимки — верните весь корень к предыдущему состоянию.
  2. Timeshift для настольных систем позволяет быстро откатиться к рабочему снимку.
  3. Контейнеризация. Запускайте критичные сервисы в контейнерах — возвращение к старому образу проще.
  4. Резервные копии конфигураций. Храните /etc и данные приложений в системе контроля версий или бэкапе.

Эти методы чаще безопаснее, чем понижение отдельных пакетов, когда зависимостей много.

Чек-лист перед откатом (роли)

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

    • Снимок или резервная копия системы готова.
    • Проверены зависимости и конфликтующие пакеты.
    • План отката и возврата записан.
  • Для desktop-пользователя:

    • Сохранены пользовательские настройки и профили.
    • Тестовый запуск приложения после отката.
  • Для разработчика:

    • Описан минимальный набор шагов для воспроизведения ошибки.
    • Собран лог и, при возможности, подготовлен баг-репорт.

Критерии приёмки после отката

  • Приложение запускается и выполняет ключевые сценарии.
  • Пользовательские данные не потеряны.
  • Система не имеет нарушенных зависимостей (apt/dpkg или rpm/pacman не возвращают ошибок).
  • Мониторинг не показывает новых ошибок в логах.

Типовые тесты после отката

  1. Smoke test: запустить приложение, выполнить базовые операции.
  2. Интеграционные проверки: связанные сервисы обмениваются данными.
  3. Регрессионные тесты: ключевые функции, которые ломались в новой версии.
  4. Проверка зависимостей: apt/dpkg или rpm/pacman не выдают конфликтов.

Безопасность и конфиденциальность

  • Не устанавливайте пакеты из ненадёжных источников. RPM/DEB из неизвестных сайтов может содержать вредоносный код.
  • Если вы используете внешние репозитории или AUR, проверяйте PKGBUILD/скрипты перед исполнением.
  • На серверах избегайте установки пакетов из пользовательских репозиториев без проверки подписей.

Примеры сценариев и альтернативные подходы

Сценарий 1 — критичная машина с сервисом: используйте снимки или контейнеры; откат пакета — временная мера.

Сценарий 2 — рабочая станция: быстро понизьте пакет и удержите его через apt-mark или IgnorePkg.

Альтернативы к откату пакета:

  • Применить патч конфигурации, обходящий регрессию.
  • Запустить старую версию в контейнере или виртуальной машине.
  • Использовать предыдущий образ виртуальной машины.

Руководство действий (playbook) — быстрая последовательность для сервера

  1. Зафиксируйте инцидент: что и когда сломалось.
  2. Сделайте снимок/резервную копию.
  3. Проверьте доступные версии пакета.
  4. Установите нужную версию.
  5. Закрепите версию против автоматического обновления.
  6. Выполните smoke tests.
  7. Наблюдайте систему 30–60 минут.
  8. Документируйте итог и отправьте баг-репорт при необходимости.

Отладка проблем после отката

  • Если откат не устранил проблему, проверьте логи систем и приложений (journalctl, /var/log/*).
  • Проверьте, не повреждены ли конфигурационные файлы из-за несовместимости версий.
  • Сравните списки зависимостей до и после отката.

Decision flowchart

flowchart TD
  A[Обнаружен дефект после обновления] --> B{Можно ли быстро вернуть систему в рабочее состояние?}
  B -- Да --> C[Сделать снимок/резерв]
  C --> D{Доступна ли нужная версия в репозиториях/кэше?}
  D -- Да --> E[Откатить пакет]
  D -- Нет --> F[Установить из RPM/DEB или использовать контейнер]
  E --> G[Закрепить пакет]
  G --> H[Проверить и наблюдать]
  F --> H
  B -- Нет --> I[Перевести нагрузку на резерв и исследовать]
  I --> H

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

Можно ли откатить любое приложение?

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

Как быстро вернуть систему, если откат сломал зависимости?

Верните системный снимок (Btrfs/LVM/Timeshift) или восстановите из резервной копии. На серверах заранее настраивайте возможность быстрой ролбэка.

Как сообщить об ошибке разработчикам?

Соберите логи, описание шагов для воспроизведения и версию пакета. Откройте баг-репорт в трекере проекта или на странице пакета в дистрибутиве.

Краткий словарь

  • Откат: установка предыдущей версии пакета.
  • Удержание: предотвращение автоматического обновления пакета.
  • Снимок: зафиксированное состояние диска/файловой системы.

Итог

Понижение версии пакета — эффективный инструмент для восстановления работоспособности системы после проблем с обновлениями. Для настольных систем чаще всего достаточно apt/pacman/yum-команд и удержания пакета. Для серверов рекомендуем сочетать откат с резервными снимками, тестированием и документированием инцидента. Всегда проверяйте зависимости и соблюдайте меры безопасности при установке пакетов из сторонних источников.

Social preview:

Пост для анонса: Быстрый гид по откату пакетов в Linux: Debian/Ubuntu, Arch и RHEL. Советы по удержанию версий, снятию снимков и проверке стабильности.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

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

Generative Erase в Microsoft Photos — обзор и советы
Фото

Generative Erase в Microsoft Photos — обзор и советы

Играть в Counter-Strike 2 на Mac через CrossOver
Игры

Играть в Counter-Strike 2 на Mac через CrossOver

Отключить затемнение рабочего стола в Windows
Windows

Отключить затемнение рабочего стола в Windows

Вычитание в Google Таблицах — полное руководство
Google Таблицы

Вычитание в Google Таблицах — полное руководство

Как редактировать и сохранять изображения в JES
Руководство

Как редактировать и сохранять изображения в JES

iMessage в iOS 10 — обзор новых возможностей
Мессенджеры

iMessage в iOS 10 — обзор новых возможностей