はじめに
先日、OSアップグレードツール「ELevate」がバージョンアップしてサードパーティのリポジトリが強化された記事を見ました。
実際に、EPELリポジトリからパッケージをインストールして、OSアップグレードを行うとどうなるか検証してみたいと思います。
使ってみる
検証環境の準備
AWSのCentOS 7イメージを使用します。
- イメージID: ami-0fd48c6031f8700df
基本設定
最低限の設定のみ実施します。
sudo localectl set-locale LANG=ja_JP.UTF-8 sudo localectl set-keymap jp sudo localectl set-x11-keymap jp sudo timedatectl set-timezone Asia/Tokyo sudo hostnamectl set-hostname C7test20240903
EPELパッケージ導入
執筆時点でアーカイブ化されているため、専用のサイトからパッケージを導入します。
sudo rpm --import https://archives.fedoraproject.org/pub/archive/epel/RPM-GPG-KEY-EPEL sudo yum install https://archives.fedoraproject.org/pub/archive/epel/7/x86_64/Packages/e/epel-release-7-14.noarch.rpm
エラー回避のため最低限のリポジトリのみ設定して、パッケージ例としてhtopをインストールします。
sudo yum install htop --enablerepo=epel --disablerepo=base,extras,updates
作業前の状態を確認します。
rpm -qi htop
Name : htop Version : 2.2.0 Release : 3.el7 Architecture: x86_64 Install Date: 2024年09月04日 16時28分12秒 Group : Unspecified Size : 222730 License : GPLv2+ Signature : RSA/SHA256, 2019年01月17日 11時50分37秒, Key ID 6a2faea2352c64e5 Source RPM : htop-2.2.0-3.el7.src.rpm Build Date : 2019年01月17日 11時46分51秒 Build Host : buildvm-24.phx2.fedoraproject.org Relocations : (not relocatable) Packager : Fedora Project Vendor : Fedora Project URL : http://hisham.hm/htop/ Bug URL : https://bugz.fedoraproject.org/htop Summary : Interactive process viewer Description : htop is an interactive text-mode process viewer for Linux, similar to top(1).
AlmaLinux 8へのアップグレード
公式サイトの手順通りアップグレードします。
最新パッケージへの更新
sudo curl -o /etc/yum.repos.d/CentOS-Base.repo https://el7.repo.almalinux.org/centos/CentOS-Base.repo sudo yum upgrade -y sudo reboot
elevateパッケージ等必要パッケージをインストール
sudo yum install -y http://repo.almalinux.org/elevate/elevate-release-latest-el$(rpm --eval %rhel).noarch.rpm sudo yum install -y leapp-upgrade leapp-data-almalinux
アップグレード前のチェック実施
sudo leapp preupgrade
レポートファイル/var/log/leapp/leapp-report.txtを参照しInhibitorsとなっている項目を解消します。
今回は以下のコマンドで対応します。
echo PermitRootLogin no | sudo tee -a /etc/ssh/sshd_config sudo leapp answer --section remove_pam_pkcs11_module_check.confirm=True
再度leapp preupgradeコマンドでチェックを行い、Inhibitorsとなっている項目が記録されないことを確認します。
念のため他の項目も目を通しましょう。
アップグレード実施
アップグレードコマンドを実施します。
A reboot is required to continue. Please reboot your system.
のメッセージを確認し再起動します。
sudo leapp upgrade sudo reboot
アップグレード後作業
- yum.confファイルの除外パッケージ設定を削除する
sudo cat /etc/dnf/dnf.conf sudo dnf config-manager --save --setopt exclude='' sudo cat /etc/dnf/dnf.conf
- CentOS 7由来のパッケージを削除する
削除対象パッケージの確認 $ rpm -qa | grep el7|sort elevate-release-1.0-2.el7.noarch kernel-3.10.0-1160.119.1.el7.x86_64 kernel-3.10.0-1160.76.1.el7.x86_64 leapp-0.16.0-2.el7.noarch leapp-data-almalinux-0.2-15.el7.20230823.noarch leapp-upgrade-el7toel8-0.19.0-7.1.el7.noarch python2-leapp-0.16.0-2.el7.noarch 削除 sudo /usr/bin/dnf remove \ elevate-release-1.0-2.el7.noarch \ kernel-3.10.0-1160.119.1.el7.x86_64 \ kernel-3.10.0-1160.76.1.el7.x86_64 \ leapp-0.16.0-2.el7.noarch \ leapp-data-almalinux-0.2-15.el7.20230823.noarch \ leapp-upgrade-el7toel8-0.19.0-7.1.el7.noarch \ python2-leapp-0.16.0-2.el7.noarch
- アップグレードで使ったパッケージを削除する
削除対象パッケージの確認 $ rpm -qa | grep leapp leapp-repository-deps-el8-5.0.8-100.202301271308Z.f7c82a24.master.el8.noarch leapp-deps-el8-5.0.8-100.202301271308Z.f7c82a24.master.el8.noarch 削除 sudo /usr/bin/dnf remove \ leapp-repository-deps-el8-5.0.8-100.202301271308Z.f7c82a24.master.el8.noarch \ leapp-deps-el8-5.0.8-100.202301271308Z.f7c82a24.master.el8.noarch
- /root/tmp_leapp_py3ディレクトリがあれば削除する
sudo ls -ld /root/tmp_leapp_py3 sudo rm -fr /root/tmp_leapp_py3
- クリーンアップ
sudo dnf clean all
ここまででAlmaLinux 8へのアップグレード完了です。
AlmaLinux 9へのアップグレード
elevateパッケージ等必要パッケージをインストール
sudo yum install -y http://repo.almalinux.org/elevate/elevate-release-latest-el$(rpm --eval %rhel).noarch.rpm sudo yum install -y leapp-upgrade leapp-data-almalinux
アップグレード前のチェック実施
sudo leapp preupgrade
レポートファイル/var/log/leapp/leapp-report.txtを参照しInhibitorsとなっている項目があれば解消します。
アップグレード実施
アップグレードコマンドを実行します。
A reboot is required to continue. Please reboot your system.
のメッセージを確認し再起動します。
sudo leapp upgrade sudo reboot
アップグレード後作業
- yum.confファイルの除外パッケージ設定を削除する
sudo cat /etc/dnf/dnf.conf sudo dnf config-manager --save --setopt exclude='' sudo cat /etc/dnf/dnf.conf
- AlmaLinux 8から残ったパッケージを削除する
削除対象パッケージの確認 $ rpm -qa | grep el8|sort elevate-release-1.0-2.el8.noarch kernel-4.18.0-553.16.1.el8_10.x86_64 kernel-core-4.18.0-553.16.1.el8_10.x86_64 kernel-modules-4.18.0-553.16.1.el8_10.x86_64 kernel-modules-extra-4.18.0-553.16.1.el8_10.x86_64 kernel-workaround-0.1-1.el8.noarch leapp-0.16.0-2.el8.noarch leapp-data-almalinux-0.2-15.el8.20230823.noarch leapp-upgrade-el8toel9-0.19.0-7.1.el8.noarch python3-leapp-0.16.0-2.el8.noarch 削除 sudo /usr/bin/dnf remove \ elevate-release-1.0-2.el8.noarch \ kernel-4.18.0-553.16.1.el8_10.x86_64 \ kernel-core-4.18.0-553.16.1.el8_10.x86_64 \ kernel-modules-4.18.0-553.16.1.el8_10.x86_64 \ kernel-modules-extra-4.18.0-553.16.1.el8_10.x86_64 \ kernel-workaround-0.1-1.el8.noarch \ leapp-0.16.0-2.el8.noarch \ leapp-data-almalinux-0.2-15.el8.20230823.noarch \ leapp-upgrade-el8toel9-0.19.0-7.1.el8.noarch \ python3-leapp-0.16.0-2.el8.noarch
- /root/tmp_leapp_py3ディレクトリがあれば削除する
sudo ls -ld /root/tmp_leapp_py3 sudo rm -fr /root/tmp_leapp_py3
- クリーンアップ
sudo dnf update --allowerasing
OSバージョンアップの確認
バージョンが9系に上がっていることを確認します。
cat /etc/redhat-release
AlmaLinux release 9.3 (Shamrock Pampas Cat)
作業後のhtopパッケージの確認
作業後の状態を確認します。
rpm -qi htop
Name : htop Version : 3.3.0 Release : 1.el9 Architecture: x86_64 Install Date: 2024年09月04日 17時26分58秒 Group : Unspecified Size : 487469 License : GPLv2+ Signature : RSA/SHA256, 2024年01月16日 00時01分55秒, Key ID 8a3872bf3228467c Source RPM : htop-3.3.0-1.el9.src.rpm Build Date : 2024年01月15日 23時59分20秒 Build Host : buildhw-x86-08.iad2.fedoraproject.org Packager : Fedora Project Vendor : Fedora Project URL : http://hisham.hm/htop/ Bug URL : https://bugz.fedoraproject.org/htop Summary : Interactive process viewer Description : htop is an interactive text-mode process viewer for Linux, similar to top(1).
無事最新パッケージに更新されたことが確認できました。
その他
vi利用時のメッセージ
AlmaLinux 9へのアップグレード後、vi利用時に以下のメッセージが表示されました。
Error detected while processing /etc/virc: line 40: E319: Sorry, the command is not available in this version: let skip_defaults_vim=1 Press ENTER or type command to continue
let skip_defaults_vim=1 部分が有効ではないとのことなのでコメントアウト等で対応しましょう。
sudo sed -i.bak 's/^let skip_defaults_vim=1/"let skip_defaults_vim=1/' /etc/virc
SELinux
アップグレード時にpermissiveモードに設定されるので、必要に応じてenforcingモードに戻します。
sudo sed -i.bak s/^SELINUX=permissive/SELINUX=enforcing/ /etc/selinux/config sudo grubby --update-kernel ALL --remove-args selinux sudo reboot
確認
sudo sestatus
作業前 SELinux status: enabled SELinuxfs mount: /sys/fs/selinux SELinux root directory: /etc/selinux Loaded policy name: targeted Current mode: permissive Mode from config file: permissive Policy MLS status: enabled Policy deny_unknown status: allowed Memory protection checking: actual (secure) Max kernel policy version: 33 作業後 SELinux status: enabled SELinuxfs mount: /sys/fs/selinux SELinux root directory: /etc/selinux Loaded policy name: targeted Current mode: enforcing Mode from config file: enforcing Policy MLS status: enabled Policy deny_unknown status: allowed Memory protection checking: actual (secure) Max kernel policy version: 33
あとがき
サードパーティのリポジトリ利用が原因で移行できない環境に対し、一度アップグレード可能か試す良い機会かと思います。