dnf で jasper-libs が 競合エラーになる

環境

# cat /etc/redhat-release
AlmaLinux release 8.4 (Electric Cheetah)

CentOS 8からの移行環境ではなく、クリーンインストールしたAlmaLinux。

現象

次のようなエラーになる。

# dnf upgrade
メタデータの期限切れの最終確認: 1:53:30 時間前の 20211113211516秒 に実施しました。
エラー:
 問題: cannot install both jasper-libs-2.0.14-5.el8.x86_64 and jasper-libs-2.0.14-4.el8.x86_64
  - package jasper-devel-2.0.14-4.el8.x86_64 requires jasper-libs(x86-64) = 2.0.14-4.el8, but none of the providers can be installed
  - cannot install the best update candidate for package jasper-libs-2.0.14-4.el8.x86_64
  - problem with installed package jasper-devel-2.0.14-4.el8.x86_64
(競合するパッケージを置き換えるには、コマンドラインに '--allowerasing' を追加してみてください または、'--skip-broken' を追加して、インストール不可のパッケージをスキップしてください または、'--nobest' を追加して、最適候補のパッケージのみを使用しないでください)

# dnf clean all
してもダメ。

# dnf upgrade jasper-libs
のように個別で指定してもダメ。


まずは、現在のインストール済みバージョンを確認

# rpm -qa | grep jasper
jasper-libs-2.0.14-4.el8.x86_64
jasper-devel-2.0.14-4.el8.x86_64

次に、upgrade対象のバージョンを確認

# dnf info jasper-libs
・
・省略
・
名前         : jasper-libs
バージョン   : 2.0.14
リリース     : 5.el8
Arch         : x86_64
サイズ       : 166 k
ソース       : jasper-2.0.14-5.el8.src.rpm
リポジトリー : appstream
概要         : Runtime libraries for jasper
URL          : http://www.ece.uvic.ca/~frodo/jasper/
ライセンス   : JasPer
説明         : Runtime libraries for jasper.


最初に示したエラーメッセージの通り、
 現在 :jasper-libs-2.0.14-4.el8.x86_64
 更新先:jasper-libs-2.0.14-5.el8.x86_64
で競合しているらしい。
エラーメッセージの最後に、
- problem with installed package jasper-devel-2.0.14-4.el8.x86_64
と書いてあるが、インストール済みパッケージに何らかの問題が発生している模様。

エラーメッセージのヒントで、
 (競合するパッケージを置き換えるには、コマンドラインに '--allowerasing' を追加してみてください
 または、'--skip-broken' を追加して、インストール不可のパッケージをスキップしてください
 または、'--nobest' を追加して、最適候補のパッケージのみを使用しないでください)
とあったので、これらを試してみる。


「--allowerasing」の指定を試す

# dnf upgrade jasper-libs --allowerasing
メタデータの期限切れの最終確認: 0:05:42 時間前の 20211113211537秒 に実施しました。
依存関係が解決しました。
===============================================================================================
 パッケージ                Arch           バージョン                 リポジトリー        サイズ
===============================================================================================
アップグレード:
 jasper-libs               x86_64         2.0.14-5.el8               appstream           166 k
依存関係パッケージの削除:
 ImageMagick-devel         x86_64         6.9.10.86-1.el8            @epel               501 k
 jasper-devel              x86_64         2.0.14-4.el8               @powertools         2.8 M

トランザクションの概要
===============================================================================================
アップグレード  1 パッケージ
削除            2 パッケージ

ダウンロードサイズの合計: 166 k
これでよろしいですか? [y/N]:

「jasper-devel」が削除されるらしい。
「jasper-devel」だけ個別にremoveしてからupgradeしても良かったかもしれない。

mariadb のlogrotateでgzipエラーが出る

環境

AlmaLinux 8.4~8.5

$ rpm -qa | grep mariadb
mariadb-connector-c-config-3.1.11-2.el8_3.noarch
mariadb-10.3.28-1.module_el8.3.0+2177+7adc332a.x86_64
mariadb-server-10.3.28-1.module_el8.3.0+2177+7adc332a.x86_64
mariadb-errmsg-10.3.28-1.module_el8.3.0+2177+7adc332a.x86_64
mariadb-connector-c-3.1.11-2.el8_3.x86_64
mariadb-gssapi-server-10.3.28-1.module_el8.3.0+2177+7adc332a.x86_64
mariadb-common-10.3.28-1.module_el8.3.0+2177+7adc332a.x86_64
mariadb-backup-10.3.28-1.module_el8.3.0+2177+7adc332a.x86_64
mariadb-server-utils-10.3.28-1.module_el8.3.0+2177+7adc332a.x86_64

現象

mariadb のlogrotateで次のようなエラーが出た。

/etc/cron.daily/logrotate:

error: Compressing program wrote following message to stderr when compressing log /var/log/mariadb/mariadb.log-xxxxxxxx:
gzip: stdin: file size changed while zipping


以下が該当すると思われる。
bugzilla.redhat.com


上記のリンク先を見ると、修正済みとしてリリースされている模様。
access.redhat.com


修正された更新パッケージのバージョン部分を見ると、「mariadb-10.5.9-1」とある。

自分の環境でインストールされたMariDBは10.3 で、上記の修正版とはバージョンが異なる。

パッケージ更新があったのは10.5系だったが、10.3系で修正された情報を得られなかったので、
Bugzilla にあるよう/etc/logrotate.d/mariadb へ delaycompress を追記して対応。

10.3から10.5への移行を考えるなら、以下を参考に。
9.2.6. MariaDB 10.3 から MariaDB 10.5 へのアップグレード Red Hat Enterprise Linux 8 | Red Hat Customer Portal

9.2.6.2. RHEL 8 バージョンの MariaDB 10.3 から MariaDB 10.5 へのアップグレード Red Hat Enterprise Linux 8 | Red Hat Customer Portal

CentOS 6のEPELで提供されるClamAVがサポート終了になった

CentOS 6は既にサポート終了となってるけど、諸事情で稼働しているケースにて。

2021/10/30の朝に次のようなメールを受信した。

Subject: Anacron job 'cron.daily' on **HOSTNAME**

/etc/cron.daily/freshclam:

ERROR: getpatch: Can't download daily-26337.cdiff from db.jp.clamav.net
ERROR: Can't download daily.cvd from db.jp.clamav.net
ERROR: getpatch: Can't download daily-26337.cdiff from db.local.clamav.net
ERROR: Can't download daily.cvd from db.local.clamav.net

ClamAVの更新エラーらしい。
たまたまかな?と思ったが、この翌日以降も同様のエラーになったので調べた。

なお、/var/log/clamav/freshclam.log にも、メールで通知されたのと同様のエラーが記録されている。

環境は、以下の通り。clamavは、EPELリポジトリから導入したもの。


検索で見つけたClamAVのMLを見ると・・・
[clamav-users] Issues with freshclam

Re: [clamav-users] Issues with freshclam

一部を引用すると、

I'm sorry to say, but yes 0.100 is too old. As of October 29, 0.100
has exceeded end of life and is now actively blocked from downloading
signature updates.

なるほど、2021/10/29にVer 0.100 はEOLになりブロックされるとのこと。

上記MLで紹介されていたClamAVのドキュメントにもEOLの記載があり、確かに終了だった。
docs.clamav.net

CentOS 8.4 から MIRACLE LINUX 8.4への移行

以前に、CentOS 8から「Rocky Linux」「Alma Linux」への移行を試した。

新たに、cybertrust社から「MIRACLE LINUX 8.4」がリリースされたので、CentOSからの移行を試してみた。

www.cybertrust.co.jp


Rocky LinuxAlma Linuxと同様に、移行スクリプトが公式から提供されている。
国産ゆえ、移行マニュアルも日本語で提供されている。
マニュアルの「制限事項」にもある通り、UEFIのセキュアブートを無効にしておく点は注意が必要。

環境

# cat /etc/redhat-release
CentOS Linux release 8.4.2105

ハードウェア:VMware ESXi 7.0 上の仮想マシン
ファームウェアEFI(推奨)、セキュアブート:無効

移行手順

以下に移行スクリプトがある。
Index of /miraclelinux/migration-tool


移行スクリプトを入手

# wget https://repo.dist.miraclelinux.net/miraclelinux/migration-tool/migrate2ml.sh


権限を与えて実行

# chmod +x migrate2ml.sh
# ./migrate2ml.sh --core
migrate2ml.sh VERSION: 1.0.1
centos-release: CentOS Linux release 8.4.2105
Disabled CentOS repo files.
Copied MIRACLE LINUX repo files.
Clean dnf cache.
21 files removed
Imported MIRACLE LINUX GPG key.
Start download pkgs
・・・略
Complete!
Upgraded of shim-x64 package.
Generating grub configuration file ...
Adding boot menu entry for EFI firmware configuration
done
Success to generate grub.cfg for ML.
Setup of efibootmgr.
BootCurrent: 0003
BootOrder: 0004,0003,0000,0001,0002
Boot0000* EFI Virtual disk (0.0)
Boot0001* EFI VMware Virtual SATA CDROM Drive (0.0)
Boot0002* EFI Network
Boot0003* CentOS Linux
Boot0004* MIRACLE LINUX
Core package migration is completed!

ログは、/var/log/migration2ml-*.log に保存される。


OSを再起動して、起動時のカーネル選択画面にて、MIRACLE LINUXの表示になっているか確認。
あれ?変わっていなかった(´・ω・`)

もう一度、以下で確認

# grubby --info DEFAULT | grep title
title="CentOS (4.18.0-305.12.1.el8_4.x86_64) 8"

CentOSのままだった(´・ω・`)


OS情報のファイルが変わっているか確認

# cat /etc/redhat-release
MIRACLE LINUX release 8.4 (Peony)

こちらは大丈夫。

リポジトリMIRACLE LINUXが追加されている

# ls /etc/yum.repos.d/
CentOS-Linux-AppStream.repo          CentOS-Linux-HighAvailability.repo
CentOS-Linux-BaseOS.repo             CentOS-Linux-Media.repo
CentOS-Linux-ContinuousRelease.repo  CentOS-Linux-Plus.repo
CentOS-Linux-Debuginfo.repo          CentOS-Linux-PowerTools.repo
CentOS-Linux-Devel.repo              CentOS-Linux-Sources.repo
CentOS-Linux-Extras.repo             MIRACLE-LINUX-AppStream.repo
CentOS-Linux-FastTrack.repo          MIRACLE-LINUX-BaseOS.repo

CentOSリポジトリも残ったままだが、公式マニュアルの

既存の CentOS 向けのリポジトリの無効化(enabled=0)と、
当社のリポジトリにアクセスするための repo ファイルを ‘/etc/yum.repos.d/’ 配下に配置

の通り仕様と思われる。

また、公式ページにも記載があるが、2021年10月の段階では、BaseOS, AppStream しか提供されていない。


この後、dnf upgrade すると、「ML8-BaseOS」というリポジトリへアクセスするのを確認。

ちょうど移行前のCentOSカーネルが少し古く、
MIRACLE LINUXの更新リストにkernel があったので、更新を適用したら起動時のカーネル選択画面も変わった。

# grubby --info DEFAULT | grep title
title="MIRACLE LINUX (4.18.0-305.19.1.el8_4.x86_64) 8.4 (Peony)"


という訳で、Rocky LinuxAlma Linuxと同様、CentOSMIRACLE LINUXへの移行も簡単。

RHEL8クローンの選択肢が色々とあって迷うところだけど、利用する環境や要件にあったものを選んでいくことになるかな・・・。

CentOS 8 で古いカーネルを削除する方法

長いので結論を先に。

# dnf remove --oldinstallonly
(最新の世代だけ残す)
 または
# dnf remove $(dnf repoquery --installonly --latest-limit=-2)
(最新の2世代だけ残す)

なぜ上記のようになるかは、以下の通り。

CentOS 7 までは、

# package-cleanup --oldkernels --count=2

などとして古いカーネルを削除できた。

CentOS 8で同じようにやっても、package-cleanup の引数に --oldkernels が無いエラーとなる。

# package-cleanup --oldkernels --count=2
package-cleanup has to be executed with one of the options: --dupes, --leaves, --orphans, --problems or --cleandupes

CentOS 8では、dnfコマンドのオプションで古いカーネルを削除できる。

dnfコマンドでは、パッケージを検索する repoquery オプションとともに、検索オプションを指定できる。

これを使って、インストール済みカーネルのリストを確認する。

# dnf repoquery --installonly
kernel-0:4.18.0-147.3.1.el8_1.x86_64
kernel-0:4.18.0-147.5.1.el8_1.x86_64
kernel-0:4.18.0-193.6.3.el8_2.x86_64
kernel-core-0:4.18.0-147.3.1.el8_1.x86_64
kernel-core-0:4.18.0-147.5.1.el8_1.x86_64
kernel-core-0:4.18.0-193.6.3.el8_2.x86_64
kernel-modules-0:4.18.0-147.3.1.el8_1.x86_64
kernel-modules-0:4.18.0-147.5.1.el8_1.x86_64
kernel-modules-0:4.18.0-193.6.3.el8_2.x86_64

以下のようにすると、最新の世代だけを残して、古いカーネルを削除できる。

# dnf remove --oldinstallonly

ある世代数を残したければ、repoquery と併せて、--latest-limit オプションを指定する事で、古い世代を取得する事もできる。
書式としては、--latest-limit=世代 のように指定する。

# dnf repoquery --installonly
kernel-0:4.18.0-147.3.1.el8_1.x86_64
kernel-0:4.18.0-147.5.1.el8_1.x86_64
kernel-0:4.18.0-193.6.3.el8_2.x86_64
kernel-core-0:4.18.0-147.3.1.el8_1.x86_64
kernel-core-0:4.18.0-147.5.1.el8_1.x86_64
kernel-core-0:4.18.0-193.6.3.el8_2.x86_64
kernel-modules-0:4.18.0-147.3.1.el8_1.x86_64
kernel-modules-0:4.18.0-147.5.1.el8_1.x86_64
kernel-modules-0:4.18.0-193.6.3.el8_2.x86_64

# dnf repoquery --installonly --latest-limit=1
kernel-0:4.18.0-193.6.3.el8_2.x86_64
kernel-core-0:4.18.0-193.6.3.el8_2.x86_64
kernel-modules-0:4.18.0-193.6.3.el8_2.x86_64
 →最新の世代

# dnf repoquery --installonly --latest-limit=2
kernel-0:4.18.0-147.5.1.el8_1.x86_64
kernel-0:4.18.0-193.6.3.el8_2.x86_64
kernel-core-0:4.18.0-147.5.1.el8_1.x86_64
kernel-core-0:4.18.0-193.6.3.el8_2.x86_64
kernel-modules-0:4.18.0-147.5.1.el8_1.x86_64
kernel-modules-0:4.18.0-193.6.3.el8_2.x86_64
 →最新から2世代

# dnf repoquery --installonly --latest-limit=-1
kernel-0:4.18.0-147.3.1.el8_1.x86_64
kernel-0:4.18.0-147.5.1.el8_1.x86_64
kernel-core-0:4.18.0-147.3.1.el8_1.x86_64
kernel-core-0:4.18.0-147.5.1.el8_1.x86_64
kernel-modules-0:4.18.0-147.3.1.el8_1.x86_64
kernel-modules-0:4.18.0-147.5.1.el8_1.x86_64
 →最新以外の世代

# dnf repoquery --installonly --latest-limit=-2
kernel-0:4.18.0-147.3.1.el8_1.x86_64
kernel-core-0:4.18.0-147.3.1.el8_1.x86_64
kernel-modules-0:4.18.0-147.3.1.el8_1.x86_64
 →最新から2世代以外


これを利用して、冒頭の記載のようにすると、最新から2世代以外を削除できる。

CentOS 8.4 から RockyLinux 8.4への移行

ついに、RockyLinux がGAとなったので、VMware環境で移行を試してみた。

環境

$ cat /etc/redhat-release
CentOS Linux release 8.4.2105

VMware ESXi 7.0 上の仮想マシン
 ファームウェアEFI(推奨)
 セキュアブート:有効

移行手順

以下に移行スクリプトがある。
GitHub - rocky-linux/rocky-tools


移行スクリプトを入手

# wget https://raw.githubusercontent.com/rocky-linux/rocky-tools/main/migrate2rocky/migrate2rocky.sh

実行権を与えて実行

# chmod +x migrate2rocky.sh
# bash migrate2rocky.sh -r

EFI Secure Boot is enabled but Rocky Linux doesn't provide a signed shim yet. Disable EFI Secure Boot and reboot.

An error occurred while we were attempting to convert your system to Rocky Linux. Your system may be unstable. Script will now exit to prevent possible damage.

 A log of this installation can be found at /var/log/migrate2rocky.log

エラーが出た。
意訳すると、「EFIセキュアブートが有効になっているが、Rocky Linuxはまだsigned shimを提供していないので無効化して」とのこと。

表示されているが、/var/log/migrate2rocky.log には、上記と同じメッセージが記録されている。

なお、-r オプションを忘れると、上記のEFIの問題とは関係なく、Usageが表示される。

# bash migrate2rocky.sh
Usage: migrate2rocky.sh [OPTIONS]

Options:
-h Display this help
-r Convert to rocky
-V Verify switch
   !! USE WITH CAUTION !!


仮想マシンを停止してから、
仮想マシン→設定の編集→仮想マシンオプション→起動オプション にて、「セキュアブート」を有効→無効へ変更する。(画像の真ん中あたりのチェックを外す)
f:id:savakan:20210703145634p:plain


なお、ここで勢い余ってEFI(推奨)→BIOS へ変更すると、
 「ファームウェアを変更すると、インストールされているゲスト OS を
  起動できなくなる場合があります。」
VMwareで警告されるが、そのまま続行するとOSが起動しなくなるので注意。
EFIに戻せば、起動するように戻った)


セキュアブートを無効化した後、仮想マシンを起動して、再び移行スクリプトを実行。

# bash migrate2rocky.sh -r
Preparing to migrate CentOS Linux 8 to Rocky Linux 8.

Determining repository names for CentOS Linux 8.Failed to set locale, defaulting to C.UTF-8
.Failed to set locale, defaulting to C.UTF-8
.Failed to set locale, defaulting to C.UTF-8
.Failed to set locale, defaulting to C.UTF-8
.Failed to set locale, defaulting to C.UTF-8


Found the following repositories which map from CentOS Linux 8 to Rocky Linux 8:
CentOS Linux 8  Rocky Linux 8
appstream       appstream
baseos          baseos
extras          extras

Getting system package names for CentOS Linux 8Failed to set locale, defaulting to C.UTF-8
Failed to set locale, defaulting to C.UTF-8
Failed to set locale, defaulting to C.UTF-8
Failed to set locale, defaulting to C.UTF-8
.Failed to set locale, defaulting to C.UTF-8
Failed to set locale, defaulting to C.UTF-8
.Failed to set locale, defaulting to C.UTF-8
.Failed to set locale, defaulting to C.UTF-8
Failed to set locale, defaulting to C.UTF-8
.Failed to set locale, defaulting to C.UTF-8
Failed to set locale, defaulting to C.UTF-8
.Failed to set locale, defaulting to C.UTF-8
.Failed to set locale, defaulting to C.UTF-8
Failed to set locale, defaulting to C.UTF-8
.Failed to set locale, defaulting to C.UTF-8
.Failed to set locale, defaulting to C.UTF-8
.Failed to set locale, defaulting to C.UTF-8


Found the following system packages which map from CentOS Linux 8 to Rocky Linux 8:
CentOS Linux 8        Rocky Linux 8
centos-backgrounds    rocky-backgrounds
centos-gpg-keys       rocky-gpg-keys
centos-logos          rocky-logos
centos-indexhtml      rocky-indexhtml
centos-linux-release  rocky-release
centos-logos-httpd    rocky-logos-httpd
centos-linux-repos    rocky-repos

Getting list of installed system packages.

We will replace the following CentOS Linux 8 packages with their Rocky Linux 8 equivalents
Packages to be Removed  Packages to be Installed
centos-gpg-keys         rocky-gpg-keys
centos-linux-release    rocky-release
centos-linux-repos      rocky-repos

Getting a list of enabled modules for the system repositories.

In addition to the above the following system packages will be removed:
centos-linux-release
centos-linux-release
Failed to set locale, defaulting to C.UTF-8

Excluding modules:
libselinux-python:2.8

Found the following modules to re-enable at completion:

Running dnf update before we attempt the migration.
Last metadata expiration check: 1:53:41 ago on Fri Jul  2 08:23:50 2021.
Dependencies resolved.
Nothing to do.
Complete!
Failed to set locale, defaulting to C.UTF-8
Added rockyappstream repo from https://dl.rockylinux.org/pub/rocky/8/AppStream/x86_64/os/
Added rockybaseos repo from https://dl.rockylinux.org/pub/rocky/8/BaseOS/x86_64/os/
rockyappstream                                  4.2 MB/s | 7.1 MB     00:01
rockybaseos                                     3.8 MB/s | 2.5 MB     00:00
Failed to set locale, defaulting to C.UTF-8
> > > ================================================================================
 Package                  Arch       Version              Repository       Size
================================================================================
Installing:
 rocky-gpg-keys           noarch     8.4-26.el8           rockybaseos      11 k
 rocky-release            noarch     8.4-26.el8           rockybaseos      19 k
 rocky-repos              noarch     8.4-26.el8           rockybaseos      12 k
Removing:
 centos-gpg-keys          noarch     1:8-2.el8            @anaconda       3.3 k
 centos-linux-release     noarch     8.4-1.2105.el8       @baseos          25 k
 centos-linux-repos       noarch     8-2.el8              @anaconda        26 k

Transaction Summary
================================================================================
Install  3 Packages
Remove   3 Packages

Total download size: 43 k
Downloading Packages:
(1/3): rocky-gpg-keys-8.4-26.el8.noarch.rpm     163 kB/s |  11 kB     00:00
(2/3): rocky-release-8.4-26.el8.noarch.rpm      242 kB/s |  19 kB     00:00
(3/3): rocky-repos-8.4-26.el8.noarch.rpm        149 kB/s |  12 kB     00:00
--------------------------------------------------------------------------------
Total                                           491 kB/s |  43 kB     00:00
warning: /var/cache/dnf/rockybaseos-56e41edc159a87c2/packages/rocky-gpg-keys-8.4-26.el8.noarch.rpm: Header V4 RSA/SHA256 Signature, key ID 6d745a60: NOKEY
rockybaseos                                     1.6 MB/s | 1.6 kB     00:00
Importing GPG key 0x6D745A60:
 Userid     : "Release Engineering <infrastructure@rockylinux.org>"
 Fingerprint: 7051 C470 A929 F454 CEBE 37B7 15AF 5DAC 6D74 5A60
 From       : /tmp/tmp.PoBnAwBzcP/gpg/RPM-GPG-KEY-rockyofficial
Key imported successfully
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Preparing        :                                                        1/1
  Running scriptlet: rocky-gpg-keys-8.4-26.el8.noarch                       1/1
  Installing       : rocky-gpg-keys-8.4-26.el8.noarch                       1/6
・・・省略
Complete!
Failed to set locale, defaulting to C.UTF-8
Generating grub configuration file ...
Adding boot menu entry for EFI firmware configuration
done
BootCurrent: 0003
BootOrder: 0004,0003,0000,0001,0002
Boot0000* EFI Virtual disk (0.0)
Boot0001* EFI VMware Virtual SATA CDROM Drive (0.0)
Boot0002* EFI Network
Boot0003* CentOS Linux
Boot0004* Rocky Linux

Done, please reboot your system.
A log of this installation can be found at /var/log/migrate2rocky.log

ログは、/var/log/migrate2rocky.log に保存される。

OSを再起動する

# reboot

OS起動時のカーネル選択画面にて、Rocky Linuxのものが選択されているか確認する。
見逃した場合、以下で確認

# grubby --info DEFAULT | grep title
title="Rocky Linux (4.18.0-305.3.1.el8_4.x86_64) 8.4 (Green Obsidian)"

OS情報のファイルが、AlmaLinuxに変わっているか確認

# cat /etc/redhat-release
Rocky Linux release 8.4 (Green Obsidian)

リポジトリもRocky Linuxになっている

# ls /etc/yum.repos.d/
Rocky-AppStream.repo  Rocky-Devel.repo   Rocky-HighAvailability.repo  
Rocky-Plus.repo        Rocky-RT.repo                Rocky-Sources.repo
Rocky-BaseOS.repo     Rocky-Extras.repo  Rocky-Media.repo             
Rocky-PowerTools.repo  Rocky-ResilientStorage.repo


CentOS→AlmaLinuxへの移行に関する記事はコチラ
shobon.hatenablog.com

CentOS 8.4 から AlmaLinux 8.4への移行

以前に、CentOS 8→AlmaLinux Betaへの移行に関する記事を書いた。

shobon.hatenablog.com


Rocky Linuxもリリースされ、Almaと両方の移行について手順を整理することにした。
とりあえず、AlmaLinuxから。

環境

$ cat /etc/redhat-release
CentOS Linux release 8.4.2105

VMware ESXi 7.0 上の仮想マシン
 ファームウェアEFI(推奨)
 セキュアブート:有効

移行手順

以下に移行スクリプトがある。
GitHub - AlmaLinux/almalinux-deploy: EL to AlmaLinux migration tool.


移行スクリプトを入手

# wget https://raw.githubusercontent.com/AlmaLinux/almalinux-deploy/master/almalinux-deploy.sh

実行権を与えて実行

# chmod +x almalinux-deploy.sh
# bash almalinux-deploy.sh
Check root privileges                                                 OK
Check centos-8.x86_64 is supported                                    OK
Download RPM-GPG-KEY-AlmaLinux                                        OK
Import RPM-GPG-KEY-AlmaLinux to RPM DB                                OK
Download almalinux-release package                                    OK
Verify almalinux-release package                                      OK
Your OS is supported                                                  OK
Remove OS specific rpm packages                                       OK
Verifying...                          ########################################
準備しています...              ########################################
更新中 / インストール中...
almalinux-release-8.4-2.el8           ########################################
Install almalinux-release package                                     OK
Backup of alternatives is done                                        OK
最速のミラーを確定しています (125 hosts)..
AlmaLinux 8 - BaseOS                            504 kB/s | 3.5 MB     00:07
AlmaLinux 8 - AppStream                         5.9 MB/s | 7.5 MB     00:01
AlmaLinux 8 - Extras                             14 kB/s | 2.5 kB     00:00
依存関係が解決しました。
=======================================================================================
 パッケージ                    Arch    バージョン                      Repo      サイズ
=======================================================================================
インストール:
 kernel                        x86_64  4.18.0-305.3.1.el8_4            baseos     5.9 M
 kernel-core                   x86_64  4.18.0-305.3.1.el8_4            baseos      36 M
 kernel-modules                x86_64  4.18.0-305.3.1.el8_4            baseos      28 M
アップグレード:
 chrony                        x86_64  3.5-2.el8.alma                  baseos     269 k
 grub2-common                  noarch  1:2.02-99.el8.alma              baseos     889 k
 grub2-efi-x64                 x86_64  1:2.02-99.el8.alma              baseos     477 k
・・・省略
完了しました!
Run dnf distro-sync -y                                                OK
Restoring of alternatives is done                                     OK
Generating grub configuration file ...
Adding boot menu entry for EFI firmware configuration
done
All Secure Boot related packages which were released by not AlmaLinux are reinstalledOK
BootCurrent: 0003
BootOrder: 0004,0003,0000,0001,0002
Boot0000* EFI Virtual disk (0.0)
Boot0001* EFI VMware Virtual SATA CDROM Drive (0.0)
Boot0002* EFI Network
Boot0003* CentOS Linux
Boot0004* AlmaLinux
The new EFI boot record for AlmaLinux is added                        OK

Migration to AlmaLinux is completed

OS再起動する

# reboot

OS起動時のカーネル選択画面にて、AlmaLinuxのものが選択されているか確認。

見逃した場合、以下で確認

# grubby --info DEFAULT | grep title
title="AlmaLinux (4.18.0-305.3.1.el8_4.x86_64) 8.4 (Electric Cheetah)"

OS情報のファイルが、AlmaLinuxに変わっているか確認

# cat /etc/redhat-release
AlmaLinux release 8.4 (Electric Cheetah)

リポジトリもAlmaLinuxになっている

# ls /etc/yum.repos.d/almalinux*
/etc/yum.repos.d/almalinux-ha.repo  /etc/yum.repos.d/almalinux-powertools.repo  /etc/yum.repos.d/almalinux.repo


以前のBataへの移行の時のようなエラーは出ず、スムーズに移行完了。

追記

CentOS→Rocky Linuxへの移行に関する記事はコチラ
shobon.hatenablog.com