Обновление Centos 7 до Centos 8

В этой статье рассмотрим обновление на чистом Centos 7 до Centos 8.

Для начала установим EPEL репозиторий, а также установим программы yum-utils и rpmconf для дальнейшей проверки:

yum install epel-release ; yum install yum-utils rpmconf -y

Проверим нет ли каких новых конфигов для сравнения командой:

rpmconf -a

Если нашлись — указываем какие нужно сохранить.

 

Затем устанавливаем пакетный менеджер dnf, он используется в Centos 8, по этому выполняем команду:

yum install dnf

Удаляем пакетный менеджер yum:

dnf -y remove yum yum-metadata-parser

Проводим обновление через новый пакетный менеджер:

dnf -y upgrade

Устанавливаем базовые пакеты для Centos 8:

dnf 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

Обратите внимание, что ссылки на пакеты могут быть не актуальны из за обновлений. Свежие пакеты можно посмотреть по ссылке:
http://mirror.centos.org/centos/8/BaseOS/x86_64/os/Packages/
Там же, найти и установить пакеты linux-repos, linux-release и gpg-keys.

Следующей командой обновим репозиторий EPEL:

dnf -y upgrade https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm

С помощью dnf удаляем временные файлы:

dnf clean all

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

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

Если система чистая — вывод должен быть пустой.

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

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

На этом этапе обновлений могут возникать следующие ошибки:
1. Конфликт с python36-rpmconf.
Для решения этой ошибки просто удаляем его:

dnf -y remove python36-rpmconf

2. Конфликт при попытке обновить файловую систему с filesystem-3.2-25.el7.x86_64 до filesystem-3.8-3.el8.x86_64. Ошибка возникает из за того, что система запущена в виртуальном контейнере.
Для решения этой проблемы выполните команду:

echo '%_netsharedpath /sys:/proc' > /etc/rpm/macros.netshared

Этим самым мы обновим файловую систему внутри контейнера.

3. Ошибка при yum: Error: Transaction failed
Для решения нужно переустановить yum вручную:

cd /usr/bin
sudo ln -s dnf-3 yum
cd /etc/yum
rm -r *
dnf -y install yum

После того как обновили систему — ставим ядро kernel для Centos 8:

dnf -y install kernel-core

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

dnf groupupdate "Core" "Minimal Install" 

После завершения проверяем какая OS установилась командой:

cat /etc/os-release

Вывод должен быть следующий:

NAME="CentOS Linux" 
VERSION="8" 
ID="centos" 
ID_LIKE="rhel fedora" 
VERSION_ID="8" 
PLATFORM_ID="platform:el8" 
PRETTY_NAME="CentOS Linux 8" 
ANSI_COLOR="0;31" 
CPE_NAME="cpe:/o:centos:centos:8" 
HOME_URL="https://centos.org/" 
BUG_REPORT_URL="https://bugs.centos.org/" 
CENTOS_MANTISBT_PROJECT="CentOS-8" 
CENTOS_MANTISBT_PROJECT_VERSION="8" 

После завершения обновления можно очистить временные файлы:

dnf clean all

На этом обновления с Centos 7 до Centos 8 завершено.

Оставить комментарий

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