Обновление CentOS Stream 9 до 10

Короткая заметка, о том как обновить CentOS Stream 9 до 10.

Проверяем версию ядра:

uname -srvmipo
# Linux 5.14.0-547.el9.x86_64 #1 SMP PREEMPT_DYNAMIC Mon Dec 30 20:10:38 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux

Устанавливаем RPM-пакеты CS10:

VERSION=10.0-3
dnf install -y https://mirror.stream.centos.org/10-stream/BaseOS/x86_64/os/Packages/centos-{gpg-keys,stream-release,stream-repos}-${VERSION}.el10.noarch.rpm --allowerasing
dnf install -y https://mirror.stream.centos.org/SIGs/10-stream/extras/x86_64/extras-common/Packages/e/epel-release-10-2.el10s.noarch.rpm

Отключаем все репозитории, кроме CentOS, в /etc/yum.repos.d/, например:

# mv /etc/yum.repos.d/zabbix.repo{,_v9}
dnf --releasever=10 --allowerasing --setopt=deltarpm=false --disablerepo=epel* distro-sync -y

Если distro-sync прошел успешно и все пакеты установлены как ожидалось, пора перезагрузиться:

reboot

Проверяем версию ядра, должно быть 6.12+:

uname -srvmipo
# Linux 6.12.0-39.el10.x86_64 #1 SMP PREEMPT_DYNAMIC Thu Jan  9 16:11:58 UTC 2025 x86_64 unknown unknown GNU/Linux

На всякий случай, ребилдим базу данных RPM:

rpm --rebuilddb
dnf update -y

Если возникают ошибки, вида:

#  1. Certificate 05B555B38483C65D invalid: policy violation
#      because: No binding signature at time 2025-01-09T10:25:05Z
#      because: Policy rejected non-revocation signature (PositiveCertification) requiring second pre-image resistance
#      because: SHA1 is not considered secure
#  2. Certificate 05B555B38483C65D invalid: policy violation
#      because: No binding signature at time 2025-01-18T19:50:02Z
#      because: Policy rejected non-revocation signature (PositiveCertification) requiring second pre-image resistance
#      because: SHA1 is not considered secure

Проверяем ключи GPG:

rpm -q gpg-pubkey --qf '%{NAME}-%{VERSION}-%{RELEASE}\t%{SUMMARY}\n'

# gpg-pubkey-1d997668-621e3cac	CentOS Extras SIG (https://wiki.centos.org/SpecialInterestGroup) <security@centos.org> public key
# gpg-pubkey-3228467c-613798eb	Fedora (epel9) <epel@fedoraproject.org> public key
# gpg-pubkey-8483c65d-5ccc5b19	CentOS (CentOS Official Signing Key) <security@centos.org> public key
# gpg-pubkey-e37ed158-65785fa9	Fedora (epel10) <epel@fedoraproject.org> public key

Удаляем Fedora (epel9) epel@fedoraproject.org public key:

rpm -e gpg-pubkey-3228467c-613798eb

Удаляем CentOS (CentOS Official Signing Key) <security@centos.org> public key (из CS9):

rpm -e gpg-pubkey-8483c65d-5ccc5b19

Повторно импортируем открытый ключ CentOS (CentOS Official Signing Key) (из CS10):

rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial-SHA256

Проверяем наличие устаревших пакетов el9:

2>/dev/null rpm -qa | grep '\.el9'

Обновляем устаревшие пакеты el9:

rpm -qa | grep el9 | sed 's/^\(.*\)-[0-9].*/\1/' | xargs -I {} sudo dnf install -y {} --releasever=10 --disablerepo=\* --enablerepo=baseos,appstream,extras --skip-broken

Удаляем устаревшие пакеты. ДЕЛАЙТЕ ЭТО ОСТОРОЖНО! Сначала проверьте, чтобы это не привело к удалению каких-либо важных компонентов системы или ядра ОС:

2>/dev/null rpm -qa | grep '\.el9' | xargs dnf remove -y
=====================================================================================
 Packet                   Architecture  Version               Repository         Size
=====================================================================================
Removing:
 abattis-cantarell-fonts      noarch    0.301-4.el9           @appstream        705 k
 containernetworking-plugins  x86_64    1:1.6.1-1.el9         @appstream         71 M
 gpm-libs                     x86_64    1.20.7-29.el9         @appstream         28 k
 iprutils                     x86_64    2.4.19-5.el9          @baseos           693 k
 kernel                       x86_64    5.14.0-480.el9        @baseos             0  
 kernel                       x86_64    5.14.0-547.el9        @baseos             0  
 kernel-core                  x86_64    5.14.0-480.el9        @baseos            66 M
 kernel-core                  x86_64    5.14.0-547.el9        @baseos            66 M
 kernel-modules               x86_64    5.14.0-480.el9        @baseos            33 M
 kernel-modules               x86_64    5.14.0-547.el9        @baseos            34 M
 kernel-modules-core          x86_64    5.14.0-480.el9        @baseos            27 M
 kernel-modules-core          x86_64    5.14.0-547.el9        @baseos            27 M
 kmod-kvdo                    x86_64    8.2.5.2-154.el9       @baseos           1.8 M
 libreport-filesystem         noarch    2.15.2-6.el9          @baseos             0  
 libsigsegv                   x86_64    2.13-4.el9            @baseos            49 k
 libsoup                      x86_64    2.72.0-8.el9          @appstream        1.2 M
 libteam                      x86_64    1.31-16.el9           @baseos           109 k
 pcre                         x86_64    8.44-4.el9            @baseos           525 k
 pinfo                        x86_64    0.6.10-29.el9         @appstream        300 k
 python3-setuptools-wheel     noarch    53.0.0-13.el9         @baseos           549 k
 teamd                        x86_64    1.31-16.el9           @baseos           287 k
 tracer-common                noarch    1.1-2.el9             @appstream         34 k
 usb_modeswitch               x86_64    2.6.1-4.el9           @baseos           221 k
 usb_modeswitch-data          noarch    20191128-6.el9        @baseos           134 k
 xe-guest-utilities-latest    x86_64    7.30.0-7.el9          @epel             3.2 M
Removing unused dependencies:
 desktop-file-utils           x86_64    0.26-14.el10          @appstream        230 k
 libdaemon                    x86_64    0.14-31.el10          @baseos            68 k
 libnl3-cli                   x86_64    3.11.0-1.el10         @baseos           1.0 M
 tcl                          x86_64    1:8.6.13-4.el10       @baseos           4.2 M
 xdg-utils                    noarch    1.2.0-3.el10          @appstream        346 k
=====================================================================================

На этом всё!

1 лайк