В данной статье мы расскажем вам как обновиться с CentOS 7 до CentOS 8, релиз которой состоялся 24 сентября 2019 года, спустя 180 дней после выхода RHEL 8 - дистрибутива, на кодовой базе которого основана CentOS.
Описанный в статье метод обновления на данный момент не является официальным и не рекомендуется к применению на производственных серверах. Мы рекомендуем использовать его для обновления вашего домашнего компьютера. Данный метод обновления работает только с версией установки CentOS 7 Minimal. Все действия, описанные в статье, необходимо производить под пользователем root с правами sudo.
Содержание статьи:
Обновление CentOS 7 до CentOS 8
Шаг 1. Подготовка к обновлению
Для того, чтобы произвести обновление с CentOS 7 до CentOS 8 сперва нужно установить необходимые пакеты. Сперва установим EPEL репозиторий.
yum install epel-release
После выполнения успешной установки EPEL репозитория нам необходимо установить пакеты rpmconf и yum-utils которые понадобятся нам в дальнейшем. Установим их выполнив следующие команды:
yum install rpmconf
yum install yum-utils
Шаг 2. Очистка конфигурационных файлов
Теперь после успешной установки необходимых утилит нам нужно провести проверку и сравнение конфигов в системе утилитой rpmconf. Если у вас в системе несколько одинаковых конфигов, вывод утилиты предложит вам выбрать какой из них оставить:
rpmconf -a
Шаг 3. Поиск лишних пакетов
После сравнения конфигов нам нужно проверить какие пакеты у нас установлены не из репозиториев. Выполнить проверку можно утилитой package-cleanup. Проверим нашу систему выполнив следующие команды:
package-cleanup --orphans
package-cleanup --leaves
Следующим этапом проверим какие пакеты можно удалить. Сделаем это следующей командой:
yum autoremove
Для дальнейшего обновления нам понадобится установить в систему менеджер пакетов dnf используемый по умолчанию в CentOS 8 на замену yum. Во время установки необходимо внимательно наблюдать за выводом команды, поскольку она удаляет системные файлы.
Шаг 4. Установка dnf
Установим менеджер пакетов dnf следующей командой:
yum install dnf

Шаг 5. Удаление yum
Следующим этапом производим удаление yum командой:
dnf remove yum yum-metadata-parser
Теперь удаляем папку yum
rm -Rf /etc/yum
Шаг 6. Обновление CentOS
Теперь запускаем обновление дистрибутива через dnf следующей командой:
dnf upgrade
Теперь мы можем приступить к обновлению версию дистрибутива. Сперва установим релиз CentOS 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
После установки обновления версии дистрибутива нам необходимо установить EPEL репозиторий. Установим его следующей командой:
dnf upgrade https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
Теперь необходимо удалить пакеты и старые ядра оставшиеся в системе, которые могут привести к конфликтам когда будет выполняться обновление CentOS 7 до CentOS 8. Выполняется это следующими командами:
rpm -e --nodeps sysvinit-tools
rpm -e `rpm -q kernel`
После всех вышеописанных действий мы можем обновить CentOS 7 до 8. Обновление выполняется следующей командой:
dnf --releasever=8 --allowerasing --setopt=deltarpm=false distro-sync
И последним шагом будет установка минимального набора пакетов при помощи группового управления. Выполняется такая установка следующей командой:
dnf groupupdate "Core" "Minimal Install"
Шаг 7. Проверка версии
По окончании установки вы можете проверить - обновилась ли система следующей командой:
hostnamectl
Теперь вы можете перезагрузить систему и проверить корректность загрузки новой системы. Теперь вы знаете как обновить centos 7 до 8.
После этого вы сможете установить необходимые пакеты программ, а также добавить сторонние репозитории. Спасибо за внимание.
Обнаружили ошибку в тексте? Сообщите мне об этом. Выделите текст с ошибкой и нажмите Ctrl+Enter.
у меня возникла проблема с обновлением с 7 версии до 8.2
решилось установкой сразу трёх пакетов, вместо одного релиза (ШАГ 6)
вместо:
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 install https://mirror.yandex.ru/centos/8/BaseOS/x86_64/os/Packages/centos-repos-8.2-2.2004.0.1.el8.x86_64.rpm https://mirror.yandex.ru/centos/8/BaseOS/x86_64/os/Packages/centos-release-8.2-2.2004.0.1.el8.x86_64.rpm https://mirror.yandex.ru/centos/8/BaseOS/x86_64/os/Packages/centos-gpg-keys-8.2-2.2004.0.1.el8.noarch.rpm
ругалось на зависимости.
Антон, спасибо большое, за данную информацию!
Также, спасибо автору, за перевод статьи.
https://mirror.yandex.ru/centos/8/BaseOS/x86_64/os/Packages/centos-release-8.0-0.1905.0.9.el8.x86_64.rpm
ссылка битая
Ссылки меняются из-за обновлений. Актуальные ссылки на 31.12.2020 (с новым годом, епрст):
sudo dnf -y install \
http://mirror.centos.org/centos/8/BaseOS/x86_64/os/Packages/centos-linux-repos-8-2.el8.noarch.rpm \
http://mirror.centos.org/centos/8/BaseOS/x86_64/os/Packages/centos-linux-release-8.3-1.2011.el8.noarch.rpm \
http://mirror.centos.org/centos/8/BaseOS/x86_64/os/Packages/centos-gpg-keys-8-2.el8.noarch.rpm
После команды:
dnf --releasever=8 --allowerasing --setopt=deltarpm=false distro-sync
Получаю ошибку:
Error:
Problem: The operation would result in removing the following protected packages: systemd
На 15. 10.2022 команда для установки такая :
dnf install https://mirror.yandex.ru/centos/8-stream/BaseOS/x86_64/os/Packages/{centos-stream-repos-8-6.el8.noarch.rpm,centos-stream-release-8.6-1.el8.noarch.rpm,centos-gpg-keys-8-6.el8.noarch.rpm}
Все равно, после обновления вылазят ошибки. Что-то ребята не продумали.
В принципе, многие конторы предоставляют возможность ставить любую систему из своего образа. Даже если это будет только boot-образ, все равно, с нуля будет проще настроить.