В декабре 2021 года CentOS 8 достиг конца жизни (EOL). Если ваш сервер до сих пор работает на CentOS 8 — он не получает обновления безопасности. Необходима срочная миграция.
Сравнение преемников CentOS
| Дистрибутив | Спонсор | Версии | EOL (v9) |
|---|---|---|---|
| Rocky Linux | Rocky Enterprise Software Foundation | 8, 9 | 2032 |
| AlmaLinux | CloudLinux | 8, 9 | 2032 |
| CentOS Stream | Red Hat | 9, 10 | 2027 |
| RHEL (платный) | Red Hat | 8, 9 | 2032 |
Миграция CentOS 8 → AlmaLinux 8
# Скачать официальный скрипт миграции
curl -O https://raw.githubusercontent.com/AlmaLinux/almalinux-deploy/master/almalinux-deploy.sh
# Запустить (обязательно в screen!)
sudo screen -S migration
sudo bash almalinux-deploy.sh
# После завершения — перезагрузка
sudo reboot
# Проверить результат
cat /etc/almalinux-release
rpm -qa | grep almalinux
Миграция CentOS 8 → Rocky Linux 8
# Скачать скрипт migrate2rocky
curl -O https://raw.githubusercontent.com/rocky-linux/rocky-tools/main/migrate2rocky/migrate2rocky.sh
chmod +x migrate2rocky.sh
# Запустить в screen
sudo screen -S migration
sudo bash migrate2rocky.sh -r
# Перезагрузка и проверка
sudo reboot
cat /etc/rocky-release
После миграции
# Обновить все пакеты
sudo dnf update -y
# Проверить репозитории
dnf repolist
# Проверить ядро
uname -r
rpm -q kernel
Разбор типичных ошибок миграции
Скрипт almalinux-deploy.sh завершается с ошибкой "Failed to synchronize cache" — обычно означает, что старые репозитории CentOS 8 уже недоступны (mirrorlist.centos.org отключён после EOL), и dnf не может обновить метаданные до подмены репозиториев.
Errors during downloading metadata for repository 'base':
- Status code: 404 for http://mirrorlist.centos.org/?release=8&arch=x86_64&repo=BaseOS
Error: Failed to download metadata for repo 'base'
Решение — сначала вручную переключить репозитории на vault.centos.org (архив), чтобы dnf вообще мог что-то скачать, и только после этого запускать скрипт миграции.
sudo sed -i 's/mirrorlist/#mirrorlist/g' /etc/yum.repos.d/CentOS-*
sudo sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g' /etc/yum.repos.d/CentOS-*
После миграции "dnf update" пишет "Problem: package X requires Y, but none of the providers can be installed" — признак того, что часть пакетов осталась от CentOS (например, ядро или сторонний модуль), а часть уже от AlmaLinux/Rocky, и версии несовместимы.
Problem: package kernel-core-4.18.0-305.el8.x86_64 requires kernel-modules = 4.18.0-305.el8, but none of the providers can be installed
Обычно помогает sudo dnf distro-sync — команда приводит все пакеты к версиям одного дистрибутива, а не просто обновляет их по отдельности.
Способы перехода: сравнение
| Способ | Простой | Риск | Когда выбирать |
|---|---|---|---|
| Скрипт миграции (almalinux-deploy / migrate2rocky) | Минуты | Средний, зависит от кастомных пакетов | Стандартный сервер без экзотики |
| Новый сервер + перенос данных | Часы (перенос БД, конфигов) | Низкий для системы | Продакшн с высокими требованиями к стабильности |
| Переход на CentOS Stream | Минуты | Высокий — rolling-release, менее предсказуем | Тестовые окружения, не для прода |
Когда миграция скриптом не подходит
- На сервере много кастомных пакетов из сторонних репозиториев (EPEL forks, самосборные RPM) — скрипт может не справиться с зависимостями, надёжнее переносить данные на чистый сервер.
- Нужна гарантированная поддержка от вендора — Rocky и AlmaLinux бесплатны, но без коммерческого SLA; для этого нужен именно RHEL.
- Сервер уже давно не обновлялся и содержит пакеты из разных версий CentOS 8.x — сначала обязательно выполните
dnf updateна CentOS до актуального минора, иначе скрипт может завершиться с ошибками зависимостей.
Проверка результата
- Убедитесь, что релиз сменился:
cat /etc/os-releaseдолжен показывать AlmaLinux или Rocky Linux, а не CentOS. - Проверьте отсутствие "хвостов" от CentOS:
rpm -qa | grep -i centos— команда не должна вернуть пакетов (кроме, возможно, centos-release-подобных, специально оставленных). - Выполните полное обновление и убедитесь в отсутствии конфликтов:
sudo dnf distro-syncдолжен завершиться без ошибок. - Проверьте ключевые сервисы:
systemctl status nginx mariadb— оба должны бытьactive (running)после перезагрузки.
После миграции стоит проверить версию ядра — см. статью об обновлении ядра, а общий процесс планового обновления ОС описан в руководстве по обновлению VDS.