Главная › Форумы › SOFTWARE › Tuning Systems › Апгрейд CentOS 8 Stream до CentOS 9 Stream
- В этой теме 0 ответов, 1 участник, последнее обновление 2 года назад сделано E-tec.
-
АвторСообщения
-
12.11.2022 в 15:27 #2267
Если используются только официальные репозитории, довольно легко выполнить обновление до новой версии CentOS 9 Stream. Использование неофициальных или пользовательских репозиториев CentOS Stream 8 может привести к нестабильной работе системы или поломке системы. Первым делом, проверьте наличие проблем совместимости CentOS 9 Stream установленных в настоящее время репозиториях, если используются какие-то конкретные или неофициальные.
В данной статье используется CentOS 8 Stream только с официальными репозиториями по умолчанию и кроме того, репозиторий EPEL, которые поддерживает CentOS 9 Stream.
Разберем как обновить CentOS 8 Stream сервер с минимальной установкой пакетов и дополнительной информацией о важных URL-адресах и ссылках на CentOS 9 Stream, а также о том, какое программное обеспечение пользователь может установить после обновления.
Сравнивая пакеты двух систем — чистой установки CentOS 9 Stream и обновление с CentOS 8 Stream, при чистой установке установлено 377 пакетов, а при обновлении — 387 пакетов. Некоторые процессы так же имеют небольшие проблемы, например служба chronyd не запускается при загрузке. Демон chronyd служит для синхронизации времени.
И так если Вам дорого время на настройку системы с 0, и вы все же решитесь на обновление системы то приступим!
1. Первым делом обновим все установленные пакеты до актуальных версий.
# dnf update -y Last metadata expiration check: 0:09:08 ago on Tue Nov 9 12:12:07 2022. Dependencies resolved. Nothing to do. Complete!
Инструмент DNF сообщает, что все пакеты обновлены, в моем случае обновлять нечего, по этому идем дальше.
2. Удаление всех пакетов, которые больше не используются в системы или не совместимы с CentOS 9.
Проверьте «потерянные» и оставленные пакеты после удаления основных пакетов. Некоторые из пакетов могут использоваться пользователем, поэтому важно знать какие из пакетов Вы используете, а какие нет. Удалите пакеты, если они не используются системой, и они помечены как пакет на удаление, и если они не используются пользователем или системы.
# dnf repoquery --unneeded Last metadata expiration check: 0:12:56 ago on Tue Nov 9 12:12:07 2022. NetworkManager-initscripts-updown-1:1.40.0-1.el8.noarch grub2-tools-efi-1:2.02-129.el8.x86_64 libmetalink-0:0.1.3-7.el8.x86_64 pciutils-0:3.7.0-1.el8.x86_64 python3-configobj-0:5.0.6-11.el8.noarch python3-schedutils-0:0.6-6.el8.x86_64 rdma-core-0:41.0-1.el8.x86_64 [root@srv ~]# dnf repoquery --extras Last metadata expiration check: 0:00:12 ago on Tue Nov 9 12:34:17 2022.
Удалите ненужные пакеты:
# dnf remove -y NetworkManager-initscripts-updown-1:1.40.0-1.el8.noarch grub2-tools-efi-1:2.02-129.el8.x86_64 libmetalink-0:0.1.3-7.el8.x86_64 pciutils-0:3.7.0-1.el8.x86_64 python3-configobj-0:5.0.6-11.el8.noarch python3-schedutils-0:0.6-6.el8.x86_64 rdma-core-0:41.0-1.el8.x86_64 Dependencies resolved. ========================================================================================= Package Arch Version Repository Size ========================================================================================= Removing: NetworkManager-initscripts-updown noarch 1:1.40.0-1.el8 @baseos 2.1 k grub2-tools-efi x86_64 1:2.02-129.el8 @baseos 2.0 M libmetalink x86_64 0.1.3-7.el8 @anaconda 75 k pciutils x86_64 3.7.0-1.el8 @anaconda 211 k python3-configobj noarch 5.0.6-11.el8 @anaconda 342 k python3-schedutils x86_64 0.6-6.el8 @anaconda 46 k rdma-core x86_64 41.0-1.el8 @baseos 103 k ... Removed: NetworkManager-initscripts-updown-1:1.40.0-1.el8.noarch grub2-tools-efi-1:2.02-129.el8.x86_64 libmetalink-0.1.3-7.el8.x86_64 pciutils-3.7.0-1.el8.x86_64 python3-configobj-5.0.6-11.el8.noarch python3-schedutils-0.6-6.el8.x86_64 rdma-core-41.0-1.el8.x86_64 Complete!
На самом деле некоторые из вышеперечисленных пакетов могут остаться в системе, но их лучше удалить и при необходимости установить после обновления.
3. Установите репозитории CentOS 9 Stream.
Должны быть установлены три файла:
- centos-stream-repos-9.0-18.el9.noarch.rpm
- centos-stream-release-9.0-18.el9.noarch.rpm
- centos-gpg-keys-9.0-18.el9.noarch.rpm
Это последние версии пакетов на момент написания этой статьи. Актуальные пакеты Вы всегда можете найти на официальном сайте CentOS!
# dnf install -y http://mirror.stream.centos.org/9-stream/BaseOS/x86_64/os/Packages/centos-stream-repos-9.0-18.el9.noarch.rpm # dnf install -y http://mirror.stream.centos.org/9-stream/BaseOS/x86_64/os/Packages/centos-stream-release-9.0-18.el9.noarch.rpm # dnf install -y http://mirror.stream.centos.org/9-stream/BaseOS/x86_64/os/Packages/centos-gpg-keys-9.0-18.el9.noarch.rpm
P.S. Устанавливайте по одному пакету, возможно баг, но у меня при первой установке всех трех пакетов разом, вывалилась ошибка, при установке centos-gpg-keys. При успешной установке увидите соответствующий ответ от системы:
Upgraded: centos-stream-release-9.0-18.el9.noarch centos-stream-repos-9.0-18.el9.noarch Downgraded: centos-gpg-keys-9.0-18.el9.noarch Complete!
После чего обновите дистрибутив с помощью команды:
# dnf -y --releasever=9-stream --allowerasing --setopt=deltarpm=false distro-sync
Перестройте базу данных RPM.
# rpmdb --rebuilddb warning: Converting database from bdb_ro to sqlite backend
Очистите кеш DNF:
# dnf clean packages Updating Subscription Management repositories. Unable to read consumer identity This system is not registered with an entitlement server. You can use subscription-manager to register. 0 files removed
Введите команду обновления пакетов:
# dnf update -y
Теперь установим все пакеты для «Минимальной установки» сервера:
# dnf -y groupupdate "Core" "Minimal Install"
Теперь система обновлена до CentOS 9 Stream. Систему следует перезагрузить. При загрузке можно будет увидеть в grub новое ядро от centos 9, а так же старые ядра centos 8. Чтоб проверить текущую версию своей ОС, введите команду:
# cat /etc/*release
4. Необязательная очистка системы.
Удаление старых ядер и все старые пакеты, которые использовались в версии «.el8» для CentOS 8 Stream.
Для начала удалим «старые» ядра:
# rpm -q kernel-core kernel-core-4.18.0-383.el8.x86_64 kernel-core-4.18.0-408.el8.x86_64 kernel-core-5.14.0-171.el9.x86_64
Видим два старых ядра от Centos 8, и одно новое от Centos 9, у вас список ядер может отличаться, удаляем по очереди!
dnf remove -y kernel-core-4.18.0-383.el8.x86_64 kernel-core-4.18.0-408.el8.x86_64 Updating Subscription Management repositories. Unable to read consumer identity ... Removed: kernel-4.18.0-383.el8.x86_64 kernel-4.18.0-408.el8.x86_64 kernel-core-4.18.0-383.el8.x86_64 kernel-core-4.18.0-408.el8.x86_64 kernel-modules-4.18.0-383.el8.x86_64 kernel-modules-4.18.0-408.el8.x86_64 Complete!
Удалите менеджер подписок, если у вас он используется:
# dnf remove -y subscription-manager Updating Subscription Management repositories. Unable to read consumer identity ... Removed: libdnf-plugin-subscription-manager-1.29.30-1.el9.x86_64 python3-chardet-4.0.0-5.el9.noarch python3-cloud-what-1.29.30-1.el9.x86_64 python3-decorator-4.4.2-6.el9.noarch python3-ethtool-0.15-2.el9.x86_64 python3-idna-2.10-7.el9.noarch python3-iniparse-0.4-45.el9.noarch python3-inotify-0.9.6-25.el9.noarch python3-librepo-1.14.2-3.el9.x86_64 python3-pysocks-1.7.1-12.el9.noarch python3-requests-2.25.1-6.el9.noarch python3-setuptools-53.0.0-11.el9.noarch python3-subscription-manager-rhsm-1.29.30-1.el9.x86_64 python3-urllib3-1.26.5-3.el9.noarch subscription-manager-1.29.30-1.el9.x86_64 subscription-manager-rhsm-certificates-20220623-1.el9.noarch usermode-1.114-4.el9.x86_64 Complete!
Для того, чтоб увидеть все старые пакеты из Centos 8 с расширением .el8, вводим:
# dnf list --installed|grep el8 inih.x86_64 56-1.el8 @epel iwl6000-firmware.noarch 9.221.4.1-110.el8.1 @baseos libcbor.x86_64 0.7.0-6.el8 @epel libcroco.x86_64 0.6.12-4.el8_2.1 @anaconda libfido2.x86_64 1.11.0-2.el8 @epel mozjs60.x86_64 60.9.0-4.el8 @anaconda
P.S. У вас список может отличаться!
Это старые библиотеки или модули, версии которых не включены в выпуск CentOS 9 Stream. Лучший вариант, найти их аналоги пакетов в CentOS 9 Stream и установить, либо удалить вовсе, если они не используются.
Например, библиотека inih является более старой версией в CentOS 9 Stream, чем в CentOS 8 Stream. inih в CentOS 8 Stream — из репозитория EPEL, а в CentOS 9 Stream — из baseos. В редких случаях может случиться так, что пакеты в новой версии CentOS будут немного старее, чем пакет EPEL из версии CentOS 8.
# dnf info inih Last metadata expiration check: 0:27:12 ago on Tue 04 Oct 2022 05:02:07 PM UTC. Installed Packages Name : inih Version : 56 Release : 1.el8 Architecture : x86_64 Size : 47 k Source : inih-56-1.el8.src.rpm Repository : @System From repo : epel Summary : Simple INI file parser library URL : https://github.com/benhoyt/inih License : BSD Description : The inih package provides simple INI file parser which is only a couple of : pages of code, and it was designed to be small and simple, so it's good : for embedded systems. Available Packages Name : inih Version : 49 Release : 6.el9 Architecture : i686 Size : 18 k Source : inih-49-6.el9.src.rpm Repository : baseos Summary : Simple INI file parser library URL : https://github.com/benhoyt/inih License : BSD Description : The inih package provides simple INI file parser which is only a couple of : pages of code, and it was designed to be small and simple, so it's good : for embedded systems.
Чтобы использовать пакет CentOS 9 Stream, просто удалите старый, а затем установите его снова.
# dnf remove -y inih-56-1.el8 # dnf install -y inih
5. Восстановите загрузочную запись аварийного ядра.
Рекавери ядро старое (как показано на скриншоте в шапке статьи), поэтому оно должно быть сгенерировано для нового релиза CentOS, т.е. текущего ядра.
Вводим команды для генерации нового ядра восстановления на случай аварии системы:
# rm -f /boot/vmlinuz-0-rescue-b2a198ecbfdd451cb905f76f825af01e /boot/initramfs-0-rescue-b2a198ecbfdd451cb905f76f825af01e.img /boot/loader/entries/b2a198ecbfdd451cb905f76f825af01e-0-rescue.conf # /usr/lib/kernel/install.d/51-dracut-rescue.install add $(uname -r) /boot /boot/vmlinuz-$(uname -r)
P.S. смотрите свои ядра, имена будут отличаться от тех какие были в моей системе!
Команда не выводит ответ при успешном создании аварийного ядра, по этому просто дождитесь пока ОС даст вам вводить следующие команды.
6. Сломанные модули DNF.
Некоторые модули DNF могут выйти из строя, и менеджер DNF сообщит об этом. Просто сбросьте модули в исходное состояние с помощью команд:
# dnf module reset -y nodejs perl perl-IO-Socket-SSL perl-libwww-perl php satellite-5-client virt Last metadata expiration check: 3:41:15 ago on Wed Oct 12 09:36:22 2022. Modular dependency problems: Problem 1: conflicting requests - nothing provides module(platform:el8) needed by module nodejs:10:8030020210304194401:30b713e6.x86_64 Problem 2: conflicting requests - nothing provides module(platform:el8) needed by module perl:5.26:8000020190628020724:55190bc5.x86_64 Problem 3: conflicting requests - nothing provides module(platform:el8) needed by module perl-IO-Socket-SSL:2.066:8030020201222215140:1e4bbb35.x86_64 Problem 4: conflicting requests - nothing provides module(platform:el8) needed by module perl-libwww-perl:6.34:8030020201223164340:b967a9a2.x86_64 Problem 5: conflicting requests - nothing provides module(platform:el8) needed by module php:7.2:8020020200507003613:2c7ca891.x86_64 - nothing provides module(httpd:2.4) needed by module php:7.2:8020020200507003613:2c7ca891.x86_64 - nothing provides module(nginx) needed by module php:7.2:8020020200507003613:2c7ca891.x86_64 Problem 6: conflicting requests - nothing provides module(platform:el8) needed by module satellite-5-client:1.0:8010020191114035551:cdc1202b.x86_64 Problem 7: conflicting requests - nothing provides module(platform:el8) needed by module virt:rhel:8050020211221192853:b4937e53.x86_64 Dependencies resolved. ============================================================================================================== Package Architecture Version Repository Size ============================================================================================================== Resetting modules: nodejs perl perl-IO-Socket-SSL perl-libwww-perl php satellite-5-client virt Transaction Summary ============================================================================================================== Complete!
P.S. Смотрите свой список модулей, он будет отличаться!
Сломанные модули отображаются в каждой команде DNF, и после их сброса вывод о проблеме исчезнет.
7. Изменения брандмауэра.
Например, при добавлении маскарада к пересылаемым пакетам на внутреннем интерфейсе в качестве мостов следует добавить явную пересылку в зону, если интерфейсы находятся в одной зоне, или явно внутризонную пересылку, если интерфейсы находятся в разных зонах:
# firewall-cmd --permanent --zone=public --add-forward # firewall-cmd --reload
Простыми словами, если после обновления в ОС не работает интернет, добавьте зону «–add-forward». На этом обновление завершено!
СМОТРИТЕ ПОХОЖИЕ ТЕМЫ:
-
АвторСообщения
- Для ответа в этой теме необходимо авторизоваться.