У грудні 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, самозібрані 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.