Обновляем CentOS 7 до CentOS 8

В рамках заметки, обновляем CentOS 7 до CentOS 8 без переустановки системы. В рамках этой заметки, рассматривается процесс апгрейда ОС, на которой работает стандартный LAMP стек.

Несколько важных замечаний вначале.

  • Перед процессом обновления ОС, нужно обязательно сделать ревизию по установленному ПО и подключенным в систему репозиториям. Не исключено, что вам придётся какие-то репозитории отключить, а какие-то программы переустановить вручную после апгрейда. Относительно без проблем апгрейд проходит в случаях, когда в системе не установлено сторонних пакетов, и используются только штатные репозитории плюс epel.
  • Обновление — процесс необратимый, так что обязательно убедитесь, что у вас имеются бекапы, из которых можно будет корректно восстановиться после неудачи.
  • Если на сервере используется какая-либо панель управления (ISPmanager, VestaCP и т. д.), скорее всего, апгрейд сломает её работу. Такие серверы лучше не обновлять с 7 на 8 релиз.

CentOS 7 обновление CentOS 8

Подготовка.

Для начала, ставим утилиты, которые нам потребуются, и проверяем, что epel репозиторий подключен:

# yum install rpmconf epel-release yum-utils

Теперь выполним проверку и сравнение конфигов в системе. Тут стоит внимательно читать вывод утилиты (если он будет) и отвечать на вопросы о том, какой конфиг нам нужен (текущий, дефолтный из пакета и т. п.):

# rpmconf -a

С помощью package-cleanup смотрим, какие у нас установлены пакеты не из репозиториев, есть ли в системе пакеты, которые можно удалить и т. д (команды ниже выведут список этих пакетов):

# package-cleanup --orphans
# package-cleanup --leaves

Можно, так же, воспользоваться функционалом yum’а, но тут нужно внимательно посмотреть, что пакетный енеджер предложит удалить:

# yum autoremove

Заменяем yum на dnf.

Для апгрейда нам потребуется установить dnf, он используется в CentOS 8 по умолчанию. После этого, удалить yum. Опять же, нужно внимательно посмотреть, что dnf предложит удалить в зависимостях вместе с удалением yum:

# yum install dnf
# dnf remove yum yum-metadata-parser
# rm -Rf /etc/yum
# dnf upgrade

Обновляем систему.

Для начала, ставим centos-release и epel-release от 8 версии дистрибутива:

# dnf upgrade https://mirror.yandex.ru/centos/8/BaseOS/x86_64/os/Packages/centos-release-8.0-0.1905.0.9.el8.x86_64.rpm
# dnf upgrade https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm

Удаляем пакеты, которые могут привести к конфликтам и старые ядра, оставшиеся в системе:

# rpm -e --nodeps sysvinit-tools
# rpm -e `rpm -q kernel`

И выполняем само обновление системы:

# dnf --releasever=8 --allowerasing --setopt=deltarpm=false distro-sync

На всякий случай, проверяем, что бы пакет kernel-core с новым ядром так же быд установлен. Если его нет, ставим:

# dnf install kernel-core

И устанавливаем\обновляем минимальный набор пакетов через групповое управление:

# dnf groupupdate "Core" "Minimal Install"

Как только процесс будет завершён, перезагружаем систему, проверяем, что она запустилась с новым ядром, что установленное ПО работает нормально. При необходимости, добавляем репозитории стороннего софта и ставим его оттуда заново.

One thought on “Обновляем CentOS 7 до CentOS 8

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *