Пост

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

CentOS — дистрибутив Linux, основанный на коммерческом Red Hat Enterprise Linux компании Red Hat и совместимый с ним. Согласно жизненному циклу Red Hat Enterprise Linux (RHEL), CentOS 5, 6 и 7 будут поддерживаться «до 10 лет», поскольку они основаны на RHEL. Ранее версия CentOS 4 поддерживалась семь лет.

Подготовка

Добавляем репозиторий EPEL

1
$ sudo yum -y install epel-release

Устанавливаем утилиту yum-utils

1
$ sudo yum -y install yum-utils

Устанавливаем утилиту rpmconf

1
$ sudo yum -y install rpmconf

Выполняем проверку и сравнение конфигов

1
$ sudo rpmconf -a

После выполнения команды смотрим вывод утилиты и отвечаем на вопросы о том, какой конфиг нам нужен (текущий, дефолтный из пакета …)

Смотрим, какие у нас установлены пакеты не из репозиториев, есть ли в системе пакеты, которые можно удалить

1
2
$ sudo package-cleanup --leaves
$ package-cleanup --orphans

Обновление Centos до версии 8

Установим менеджер пакетов dnf, который используется по умолчанию в CentOS 8

1
$ sudo yum -y install dnf

Удалим менеджер пакетов yum (если он в дальнейшем вам не нужен)

1
2
$ sudo dnf -y remove yum yum-metadata-parser
$ sudo rm -Rf /etc/yum

Обновляем Centos

1
$ sudo dnf -y upgrade

Устанавливаем необходимые пакеты для CentOS 8

1
2
3
4
$ sudo dnf -y install \
   http://mirror.centos.org/centos/8/BaseOS/x86_64/os/Packages/centos-repos-8.2-2.2004.0.1.el8.x86_64.rpm \
   http://mirror.centos.org/centos/8/BaseOS/x86_64/os/Packages/centos-release-8.2-2.2004.0.1.el8.x86_64.rpm \
   http://mirror.centos.org/centos/8/BaseOS/x86_64/os/Packages/centos-gpg-keys-8.2-2.2004.0.1.el8.noarch.rpm

Обновляем репозиторий EPEL

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

Удаляем временные файлы

1
$ sudo dnf clean all

Удаляем старые ядра от Centos 7

1
$ sudo rpm -e `rpm -q kernel`

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

1
$ sudo rpm -e --nodeps sysvinit-tools

Запускаем обновление системы

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

На этом моменте у меня возникла ошибка зависимостей

1
python3-rpmconf-1.0.21-1.el8.noarch conflicts with file from package python36-rpmconf-1.0.22-1.el7.noarch

Решение:

1
$ sudo dnf -y remove python36-rpmconf

Ядро для Centos 8

Устанавливаем новое ядро для CentOS 8 sh

1
$ sudo dnf -y install kernel-core

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

1
$ sudo dnf -y groupupdate "Core" "Minimal Install"

Проверяем, какая версия centos установилась

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
$ cat /etc/*release
CentOS Linux release 8.2.2004 (Core) 
NAME="CentOS Linux"
VERSION="8 (Core)"
ID="centos"
ID_LIKE="rhel fedora"
VERSION_ID="8"
PLATFORM_ID="platform:el8"
PRETTY_NAME="CentOS Linux 8 (Core)"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:centos:centos:8"
HOME_URL="https://www.centos.org/"
BUG_REPORT_URL="https://bugs.centos.org/"

CENTOS_MANTISBT_PROJECT="CentOS-8"
CENTOS_MANTISBT_PROJECT_VERSION="8"
REDHAT_SUPPORT_PRODUCT="centos"
REDHAT_SUPPORT_PRODUCT_VERSION="8"

CentOS Linux release 8.2.2004 (Core) 
CentOS Linux release 8.2.2004 (Core) 

Удаляем временные файлы

1
$ sudo dnf clean all

Ошибка при установке YUM

При установке возникла ошибка

1
2
...
Error: Transaction failed

Решение

1
2
3
4
5
$ cd /usr/bin
$ sudo ln -s dnf-3 yum
$ cd /etc/yum
$ sudo rm -r *
$ sudo dnf -y install yum
Авторский пост защищен лицензией CC BY 4.0 .

© IT Draft. Некоторые права защищены.