Апгрейд CentOS 8 Stream до CentOS 9 Stream - Geek-Speak

Апгрейд CentOS 8 Stream до CentOS 9 Stream

Главная Форумы SOFTWARE Tuning Systems Апгрейд CentOS 8 Stream до CentOS 9 Stream

Помечено: , , , , , , ,

Просмотр 1 сообщения - с 1 по 1 (всего 1)
  • Автор
    Сообщения
  • #2267
    E-tec
    Хранитель

    Если используются только официальные репозитории, довольно легко выполнить обновление до новой версии 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.

    Должны быть установлены три файла:

    1. centos-stream-repos-9.0-18.el9.noarch.rpm
    2. centos-stream-release-9.0-18.el9.noarch.rpm
    3. 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». На этом обновление завершено!

    СМОТРИТЕ ПОХОЖИЕ ТЕМЫ:

Просмотр 1 сообщения - с 1 по 1 (всего 1)
  • Для ответа в этой теме необходимо авторизоваться.
Авторизация
*
*
Регистрация
*
*
*
Пароль не введен
*
captcha
Генерация пароля