У цій статті розглянемо оновлення на чистому 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 завершено.