RHELのマイナーバージョンアップに必要なリポジトリと確認方法を教えてください。
困っていた内容
EC2 の AMI で RHEL を使用していて、update / upgrade に必要なリポジトリを確認したい。
RHEL のマイナーバージョンアップに必要なリポジトリと、その確認方法を説明してほしい。
どう対応すればいいの?
RHEL のマイナーバージョンアップでは、次のリポジトリが必要です。
- BaseOS
- AppStream
リポジトリの確認方法
以下コマンドでリポジトリの確認できます。
RHEL 8
yum repolist
RHEL 9
dnf repolist
該当リポジトリが必要なのか検証してみる
マイナーバージョンアップ時に BaseOS または AppStream が無効になっている場合の挙動を確認します。
最新バージョンではない RHEL 9(今回は 9.6) のリポジトリを対象に、次の 3 条件で update のシミュレーションを実施します。
- BaseOS と AppStream の両方を有効にする
- BaseOS のみを有効にする
- AppStream のみを有効にする
本検証では--assumeno オプションを指定するため、実際のパッケージ更新は実行されません。
検証手順
BaseOS と AppStream の両方を有効にする
sudo dnf --releasever=9.6 --refresh update --assumeno
BaseOS のみを有効にする
sudo dnf --releasever=9.6 --disablerepo='*appstream*' --refresh update --assumeno
AppStream のみを有効にする
sudo dnf --releasever=9.6 --disablerepo='*baseos*' --refresh update --assumeno
検証結果
各条件で update のシミュレーションを実施した結果です。
| 条件 | 結果 |
|---|---|
| BaseOS と AppStream の両方 | 依存関係エラーは発生しませんでした。 |
| BaseOS のみ | 依存関係エラーが発生しました。 |
| AppStream のみ | 依存関係エラーが発生しました。 |
BaseOS のみの場合に発生したエラー
NetworkManager-cloud-setup と python-unversioned-command の依存関係を解決できませんでした。
エラー文章抜粋
cannot install the best update candidate
problem with installed package
AppStream のみの場合に発生したエラー
AppStream の更新に必要な BaseOS のパッケージを取得できませんでした。
エラー文章抜粋
nothing provides NetworkManager
nothing provides NetworkManager-libnm
nothing provides python3
結論
RHEL 9.6 の update シミュレーションでは、BaseOS と AppStream の両方を有効にした場合に、依存関係を解決できました。
BaseOS のみ、または AppStream のみを有効にした場合は、依存関係エラーが発生しました。
したがって、RHEL のマイナーバージョンアップでは、BaseOS と AppStream の両方を有効にする必要があります。
補足
RHEL 8 および RHEL 9 では、yum と dnf は基本的に同じコマンドとして使用できます。
RHEL 8 では、DNF を基盤とした YUM v4 が使用されています。RHEL 9 では、yum は dnf の互換用エイリアスです。




