Границы работ: обновление пакетов, ядра и смена релиза
Не смешивайте обычное обновление пакетов со сменой основного релиза дистрибутива.
| Вид работ | Что меняется | Как планировать |
|---|---|---|
| Обновление в пределах релиза | Доступные версии пакетов из репозиториев текущего выпуска ОС | Обычная пакетная транзакция после проверки списка изменений |
| Обновление ядра Linux | Устанавливается новая версия ядра и связанных компонентов | Обычно требуется перезагрузка и заранее подготовленный выбор прежнего ядра |
| Смена основного релиза ОС | Меняются базовые пакеты, зависимости, иногда формат конфигурации и требования приложений | Отдельный проект с совместимостью, резервным восстановлением и документированным маршрутом миграции |
Не обновляйте основной релиз «заодно»
upgrade. Для него нужны отдельные инструкции поставщика, проверка приложений и отдельный план простоя. Для CentOS переход рассматривается в статье «Переход с CentOS на Rocky Linux или AlmaLinux».Что проверить до обновления Linux-сервера
Подготовьте сервер и окно обслуживания
Выполняйте команды с административными правами: через sudo либо из учётной записи суперпользователя. Сохраняйте результаты в заявке на изменения или в рабочем журнале.
- 1Зафиксируйте ОС, ядро и архитектуруФайл
/etc/os-releaseсодержит идентификацию дистрибутива Linux, аuname -rпоказывает именно запущенное ядро. Эти данные нужны для выбора правильной ветки обновления и пр оверки результата после перезагрузки. - 2Проверьте статус поддержки релизаСопоставьте значения
ID,VERSION_IDиPRETTY_NAMEиз/etc/os-releaseс официальными сведениями поставщика: выпуски Debian, цикл выпусков Ubuntu, жизненный цикл RHEL, версии Rocky Linux, выпуски AlmaLinux или статус CentOS Linux. Не используйте репозитории другого выпуска, другого семейства или случайные архивные зеркала как замену поддержке. - 3Определите критичные функцииСоставьте короткий чек-лист служб и прикладных функций: база данных, веб-приложение, очередь, мониторинг, резервное копирование, сетевые интеграции. Укажите, кто подтверждает их работоспособность и какие действия снаружи сервера нужно проверить после работ.
- 4Проверьте доступ и способ возвратаДо начала работ проверьте отдельное подключение по SSH, доступ к удалённой консоли или физической консоли, учётные данные и возможность увидеть загрузчик. Одно го активного SSH-сеанса недостаточно: после обновления сети, ядра или
sshdон может не помочь восстановить доступ. - 5Проверьте место и резервное восстановлениеПроверьте свободное место на корневой и загрузочной файловых системах, а также там, где размещается кэш пакетов. Убедитесь, что существует актуальная резервная копия либо снимок, известен способ восстановления и учтены данные, которые изменятся во время окна.
- 6Проверьте репозитории и автоматические задачиЗафиксируйте подключённые репозитории пакетов, локальные пакеты и сторонние агенты. На время работ оцените фоновые задания и автоматические обновления, чтобы они не запустили параллельную пакетную транзакцию.
cat /etc/os-release && uname -r && uname -m && df -hПроверьте источники пакетов до транзакции
Debian и Ubuntu Server: просмотр и установка обновлений через APT
В Debian и Ubuntu применяется APT. Его команды не переносят в RPM-системы. Подробные операции с пакетами, удержаниями и кэшем описаны отдельно в статье «APT в Ubuntu и Debian: установка, обновление, удаление и очистка пакетов».
Обновите Debian Server или Ubuntu Server в пределах релиза
- 1Обновите индекс пакетов
apt updateзагружает актуальный индекс пакетов из настроенных репозиториев, но не устанавливает обновления. - 2Посмотрите доступные обновления и симулируйте транзакциюПосле
apt updateзапросите список обновляемых пакетов и выполните симуляцию. Прочитайте, какие пакеты будут обновлены, установлены или удалены. Если в выводе есть неожиданные удаления системных или прикладных компонентов, остановитесь и проверьте источники пакетов и зависимости. - 3Выберите режим обновления
apt upgradeобновляет пакеты без удаления установленных пакетов; если для изменения требуется удаление, такой пакет может быть оставлен без обновления.apt full-upgradeпри необходимости может удалить пакеты, чтобы разрешить зависимости. Выбор подтверждают только после просмотра рассчитанной транзакции. - 4Запустите выбранную транзакциюПовторите проверенную команду без режима симуляции, прочитайте запрос APT перед подтверждением и следите за сообщениями о конфигурационных файлах. Не прерывайте работающий менеджер пакетов отключением питания или закрытием управляемой сессии.
sudo apt updateapt list --upgradablesudo apt -s upgradesudo apt -s full-upgradesudo apt upgradesudo apt full-upgradeЧто не показывает симуляция APT
RHEL, Rocky Linux, AlmaLinux и CentOS Stream: обновление через DNF
В поддерживаемых выпусках RHEL, Rocky Linux, AlmaLinux и CentOS Stream используется DNF. Команды DNF относятся к RPM-экосистеме и не заменяют APT. Команда YUM в части выпусков может быть совместимым интерфейсом, но её наличие и поведение нужно сверять с документацией конкретного релиза; для автоматизации используйте интерфейс, указанный документацией целевой ОС.
Обновите поддерживаемую RHEL-подобную систему
- 1Проверьте доступность обновленийКоманда
dnf check-updateпроверяет подключённые репозитории и выводит доступные обновления. Она не изменяет установленные пакеты. Код возврата при найденных обновлениях может отличаться от кода «нет обновл ений», поэтому учитывайте это в скриптах по документации вашей версии DNF. - 2Рассчитайте транзакцию без примененияЗапустите
dnf upgrade --assumeno. DNF рассчитает обновления, новые установки и удаления, выведет сводку, а затем откажется от выполнения из-за ключа--assumeno. Проверьте каждое неожиданное изменение. - 3Установите согласованные обновленияЗапустите
dnf upgradeи снова прочитайте итог транзакции перед подтверждением. В документации актуальных RHEL-подобных выпусковdnf updateобычно указан как поддерживаемый эквивалент или псевдонимdnf upgrade, но это нужно подтверждать для конкретного релиза и не переносить на CentOS 7. - 4Зафиксируйте идентификатор транзакцииПосле завершения сохраните вывод
dnf history: он нужен для анализа и возможной попытки отмены, но сам по себе не создаёт гарантированный откат всей системы.
sudo dnf check-updatesudo dnf upgrade --assumenosudo dnf upgradesudo dnf historyОграничения просмотра DNF-транзакции
CentOS 7 после EOL: не подменяйте миграцию сменой репозиториев
Поддержка CentOS Linux 7 завершилась 30 июня 2024 года. Это EOL: CentOS 7 нельзя включать в обычную процедуру обновления поддерживаемых DNF-систем и нельзя считать смену зеркал или репозиториев универсальным способом вернуть поддержку, исправления и совместимость.
Для CentOS 7 нужен отдельный сценарий
Когда нужна перезагрузка после обновления Linux
Новое ядро начинает работать только после успешной загрузки в него. Поэтому обновление ядра Linux обычно включают в окно обслуживания с перезагрузкой. Перезапуск также может требоваться после обновления низкоуровневых компонентов, библиотек, загрузчика или служб, но универсального индикатора для всех дистрибутивов нет.
- Если в рассчитанной или выполненной транзакции есть пакеты ядра, планируйте перезагрузку и проверку загрузки.
- В Ubuntu штатный механизм, описанный в документации Ubuntu Server по автоматическим обновлениям, может создавать файл
/run/reboot-required— путь/var/run/reboot-requiredуказывает на тот же runtime-каталог в современных системах. Наличие файла означает рекомендацию перезагрузить систему. Его отсутствие не доказывает, что перезагрузка не нужна для любого набора пакетов. - В RHEL-подобных системах при наличии документированного в конкретном выпуске плагина может применяться
dnf needs-restarting -r; назначение параметра и коды возврата приведены в документации DNF Plugins Core. Доступность пакета и применимость этой документации сверяйте с руководством своего дистрибутива и релиза. - Для Debian и других систем без подходящего штатного индикатора решение принимают по составу обновлений, примечаниям к выпуску и документации поставщика ОС или приложения.
test -e /run/reboot-required && cat /run/reboot-requiredsudo dnf needs-restarting -rПерезагрузка и проверка нового ядра
Перезагрузите сервер в окно работ
- 1Проверьте возможность возврата до перезагрузкиУбедитесь, что доступна консоль и, если используются несколько ядер, ранее работавшее ядро не удалено и может быть выбрано в GRUB или другом применяемом загрузчике. Число сохраняемых ядер, вариант меню и выбор записи зависят от дистрибутива, релиза, загрузчика и локальной конфигурации.
- 2Зафиксируйте ожидаемую версиюДо перезагрузки сохраните список установленных пакетов ядра. Не путайте этот список с
uname -r: последняя команда до перезагрузки показывает старое, всё ещё запущенное ядро. - 3Выполните штатную перезагрузкуВ системах с systemd используйте
systemctl reboot. Перед командой завершите согласованные операции приложения и оставьте работающий канал консоли. - 4Подтвердите загрузкуПосле возврата сервера проверьте, что новый сеанс доступен, система загрузилась штатно, а
uname -rсоответствует ожидаемому установленному ядру.
uname -rdpkg -l 'linux-image*'rpm -q kernelsudo systemctl rebootЕсли новый kernel не загружается
initramfs, emergency mode и Kernel panic требуют отдельной диагностики: «Linux-сервер не загружается: GRUB, emergency mode, initramfs и kernel panic».План отката обновления Linux
Откат пакетной транзакции, возврат ядра и восстановление данных — разные операции.
| Сценарий | Когда может помочь | Ограничения |
|---|---|---|
| Отмена до подтверждения | Транзакция рассчитана, но ещё не подтверждена | После начала установки это уже не способ вернуть изменённые файлы |
| Загрузка с прежним ядром | Новое ядро не работает, а прежнее сохранено и доступно в загрузчике | Не возвращает другие обновлённые пакеты, конфигурации и данные приложения |
dnf history undo или dnf history rollback | Для некоторых завершённых DNF-транзакций есть история и требуемые версии пакетов доступны | Результат зависит от состава операции, истории и репозиториев; это не гарантирует возврат всей системы или данных приложения |
| Возврат снимка | Снимок создан до изменений и технология хранения поддерживает возврат в данной конфигурации | Может откатить данные, изменившиеся после снимка; требуется план обращения с этими данными |
| Восстановление из резервной копии | Нужен возврат системы, конфигурации или данных после серьёзного сбоя | Скорость и полнота зависят от состава копии, проверенной процедуры восстановления и времени создания |
Перед обновлением определите, какой сценарий применим именно к серверу: кто выполняет восстановление, откуда берётся резервная копия или снимок, как попасть в консоль, сколько простоя допустимо и что делать с данными, созданными после точки восстановления. Настройка резервного копирования, проверка восстановления, создание снимков, а также особенности LVM и файловых систем требуют отдельных инструкций.
sudo dnf history info <ID_ТРАНЗАКЦИИ>sudo dnf history undo <ID_ТРАНЗАКЦИИ>DNF history не заменяет резервную копию
dnf history undo и dnf history rollback зависят от сохранённой истории, доступности старых пакетов и состава транзакций. Они не обязаны восстановить вручную изменённые файлы, состояние внешних систем, базы данных или пользовательские данные. Для APT не следует предполагать наличие равнозначного универсального механизма отмены транзакции.Что проверить после обновления и перезагрузки
Закройте окно работ только после проверки результата
- 1Подтвердите идентификацию ОС и ядраСнова сохраните
/etc/os-releaseиuname -r. Версия ОС может не измениться при обновлении в пределах релиза, но версия запущенного ядра после плановой перезагрузки должна соответствовать ожидаемой. - 2Проверьте успешную текущую загрузкуУбедитесь, что сервер доступен по согласованным каналам, сеть работает в нужном объёме, а загрузка не завершилась аварийным режимом. Проверьте релевантные ошибки именно текущей загрузки.
- 3Проверьте необходимые службыПроверьте состояние только тех systemd units, которые входят в согласованный чек-лист. Статус пакета или отсутствие ошибки установки не доказывают, что служба и приложение работают.
- 4Проверьте прикладные функцииВыполните заранее определённые проверки: подключение клиента, ответ API, обработку задания, подключение к базе данных, работу мониторинга или иную релевантную функцию. Проверка выбирается по роли сервера.
- 5Зафиксируйте результатСохраните время работ, версии ОС и ядра, идентификатор DNF-транзакции при его наличии, перечень проверок, найденные ошибки и принятые действия. Это упрощает анализ следующего обновления.
cat /etc/os-release && uname -rsystemctl --failedjournalctl -b -p warningДля проверки и управления службами используйте systemctl по именам нужных units. Если служба не запустилась, не ограничивайтесь повторным перезапуском: сохраните её состояние и сообщения журнала, затем перейдите к статье «Служба systemd не запускается: диагностика ошибок и восстановление».
Термины в статье
- Дистрибутив Linux
- Дистрибутив Linux — готовая операционная система на базе ядра Linux, включающая набор программ, репозитории, пакетный менеджер и правила обновления и сопровождения.
- Зависимость пакета
- Зависимость пакета — требование пакета к другому пакету или его версии, без выполнения которого установка, запуск либо корректное обновление ПО невозможны или ограничены.
- Индекс пакетов
- Индекс пакетов — набор метаданных репозитория, содержащий сведения о версиях, зависимостях, архитектурах и расположении доступных пакетов.
- Кэш пакетов
- Кэш пакетов — локально сохранённые менеджером пакетов архивы пакетов и, в зависимости от реализации, метаданные репозиториев для повторного использования.
- Менеджер пакетов
- Менеджер пакетов — средство установки, обновления, удаления и учёта программных пакетов; высокоуровневые менеджеры также работают с репозиториями и разрешают зависимости.
- Пакетная транзакция
- Пакетная транзакция — согласованный набор действий по установке, обновлению, удалению и настройке пакетов, формируемый менеджером пакетов в рамках одной команды или задания.
- Репозиторий пакетов
- Репозиторий пакетов — структурированный источник пакетов и метаданных, из которого менеджер пакетов получает версии ПО, зависимости, обновления и информацию о подписях.
- Системная служба
- Системная служба — программный компонент, которым ОС управляет как логической единицей для фонового выполнения задач или предоставления функций программам и пользователям.
- Снимок состояния
- Зафиксированное гипервизором состояние поддерживаемых виртуальных дисков и конфигурации ВМ на определённый момент, иногда также памяти, к которому можно выполнить откат.
- Удержание пакета
- Удержание пакета — состояние пакета, запрещающее менеджеру пакетов автоматически устанавливать, обновлять, удалять или менять его версию.
- Ядро Linux
- Ядро Linux — центральный компонент ОС, управляющий аппаратными ресурсами и предоставляющий системные интерфейсы; оно не включает пользовательские утилиты и менеджер пакетов.
- AlmaLinux
- AlmaLinux — корпоративный дистрибутив Linux, поддерживаемый сообществом и AlmaLinux OS Foundation, ориентированный на совместимость с интерфейсами и экосистемой RHEL.
- APT
- APT — система управления пакетами в Debian-подобных Linux, которая получает пакеты из репозиториев, разрешает зависимости и передаёт установку низкоуровневому менеджеру dpkg.
- CentOS Linux
- CentOS Linux — прекращённый свободно доступный дистрибу тив Linux, создававшийся из исходных пакетов RHEL и ориентированный на бинарную совместимость с соответствующим выпуском RHEL.
- CentOS Stream
- CentOS Stream — дистрибутив Linux с непрерывной поставкой пакетов, формирующих следующую минорную версию Red Hat Enterprise Linux; он расположен между Fedora и RHEL.
- Debian
- Debian — универсальный дистрибутив Linux с пакетами DEB и системой APT, известный консервативной веткой Stable и разделением репозиториев по веткам разработки.
- DNF
- DNF — менеджер пакетов для RPM-дистрибутивов, разрешающий зависимости и выполняющий операции с репозиториями; в современных системах он заменил классический YUM.
- Emergency mode
- Emergency mode — аварийный режим systemd с минимальным окружением и консолью администратора, без обычных служб и автоматического монтирования остальных локальных файловых систем.
- EOL
- EOL — установленная поставщиком дата или стадия завершения жизненного цикла версии ПО либо модели оборудования; её последствия определяются политикой поставщика.
- GRUB
- GRUB — загрузчик операционных систем, который после BIOS или UEFI выбирает пункт своего меню, передаёт ядру Linux параметры и обычно загружает initramfs.
- initramfs
- initramfs — временная корневая файловая система в памяти, разворачиваемая ядром Linux для загрузки модулей и подготовки хранилища перед монтированием постоянной корневой файловой системы.
- journalctl
- journalctl — консольная утилита чтения и фильтрации журнала systemd, выводящая сообщения по времени, юниту, загрузке системы, приоритету и другим полям.
- Kernel panic
- Kernel panic — неустранимая ошибка ядра операционной системы, при которой оно прекращает штатное выполнение, поскольку не может безопасно продолжать работу.
- Red Hat Subscription Management
- Red Hat Subscription Management — служба и набор средств Red Hat для регистрации RHEL-систем в организации и управления их доступом к репозиториям и контенту по её подпискам.
- RHEL
- RHEL — корпоративный дистрибутив Linux от Red Hat с фиксированными основными версиями, сертификационной экосистемой и моделью сопровождения, зависящей от подписки.
- Rocky Linux
- Rocky Linux — корпоративный дистрибутив Linux, создаваемый из исходных пакетов экосистемы RHEL и ориентированный на совместимость с RHEL без использования его товарных знаков.
- SSH
- SSH — криптографический сетевой протокол для удалённого доступа и передачи данных, аутентифицирующий стороны и защищающий сеанс от перехвата.
- systemctl
- systemctl — командная утилита управления systemd, которая запускает и останавливает юниты, показывает их состояние и настраивает автоматическую активацию.
- systemd
- systemd — система инициализации и менеджер служб Linux, управляющий службами и другими ресурсами как объектами unit, обычно описанными unit-файлами.
- Ubuntu Server
- Ubuntu Server — серверный вариант дистрибутива Ubuntu на базе Debian с APT и типовыми средствами автоматизации, доступный в виде установочных и готовых образов.
- YUM
- YUM — менеджер пакетов для RPM-дистрибутивов Linux, который устанавливает, обновляет и удаляет ПО, автоматически разрешая зависимости из репозиториев.
