Facebook Twitter
お問い合わせ
TOPICS
更新情報
ホーム > ブログ > Oracle Cloud > Oracle Linux で dnf releaseverオプションが機能しない理由

Oracle Linux で dnf releaseverオプションが機能しない理由

ブログ
Oracle Cloud
2025.05.26
900

Cloudii k.sasakiです。

 
本日は、RHEL系のディストリビューションでパッケージ管理に使用する、dnfコマンドのreleaseverオプションがOracle Linuxで機能しない理由についてご紹介します。
 

 
 

Oracle Linuxでdnf releaseverオプションが機能しない理由

 
結論としては以下のとおりです。次項目から詳細について解説してきます。

 

RHELはリポジトリのURLにリリースバージョンを含んでおり、
releaseverオプションを使用して、動的にアクセス先のURLを切り替えることができる。
Oracle LinuxはリポジトリのURL形式がRHELと異なり、リリースバージョンを含んでいないため、
releaseverオプションを使用して、動的にアクセス先のURLを切り替えることができない。

 
なお、今回動作確認に使用した環境は以下のとおりです。

 

  • RHEL 9.5 / AWS
  • Oracle Linux 9.5 /OCI

 
 

releaseverオプションとは

 
releaseverオプションはリリースバージョンを指定するオプションです。

RHELで使用するとreleaseverの指定に対応したパッケージ情報を確認することができます。

 

(出力一部省略)
[root@rhel95 ec2-user]# cat /etc/redhat-release
Red Hat Enterprise Linux release 9.5 (Plow)

[root@rhel95 ec2-user]# dnf check-update kernel --releasever=9.6
kernel.x86_64  5.14.0-570.17.1.el9_6  rhel-9-baseos-rhui-rpms

[root@rhel95 ec2-user]# dnf check-update kernel --releasever=9.5
kernel.x86_64  5.14.0-503.40.1.el9_5  rhel-9-baseos-rhui-rpms

 
Oracle Linuxで実行すると、releaseverオプションの指定に関係なく最新のパッケージの情報が出力されます。実行時にエラーも出ないので注意が必要です。

 

(出力一部省略)
[root@ol95 opc]# cat /etc/oracle-release
Oracle Linux Server release 9.5

[root@ol95 opc]# dnf check-update kernel --releasever=9.5
kernel.x86_64  5.14.0-570.12.1.0.1.el9_6  ol9_baseos_latest

[root@ol95 opc]# dnf check-update kernel --releasever=9.6
kernel.x86_64  5.14.0-570.12.1.0.1.el9_6  ol9_baseos_latest

 
 

releaseverはどうやって動作するのか

 
releaseverについてヘルプなどで確認してみると以下の記載となっています。
 

  • configファイルやrepoファイルの$releasever変数の値を上書きします (dnf --help より)
  • ディストリビューションのリリースが <release>であるかのようにDNFを設定します。これはキャッシュのパス、設定ファイル、ミラーリストのURLの値に影響します。(man dnf より)

 
わかりづらいですが、パッケージやリポジトリのメタ情報をチェックしてリリースバージョンを特定しているわけではなさそうです。

 
設定ファイルやURLという言葉が出てきましたので、repoファイルでリポジトリのURLをみてみましょう。

 
 

RHELリポジトリ設定

 
RHELではrepoファイルのURLの指定で$releaesverオプションが使用されているのが分かります。

mirrorlist=https://rhui.REGION.aws.ce.redhat.com/pulp/mirror/content/dist/rhel9/rhui/$releasever/$basearch/appstream/os

ヘルプの説明では、$releaseverの値を上書きするということでしたので、releaserverオプションによって、dnf実行時に動的に接続するリポジトリを切り替えていることが分かります。

# dnf repoinfo rhel-9-baseos-rhui-rpms | grep -e 'https' -e 'name'
Last metadata expiration check: 0:08:11 ago on Thu 22 May 2025 05:03:43 AM UTC.
Repo-name          : Red Hat Enterprise Linux 9 for x86_64 - BaseOS from RHUI (RPMs)
Repo-mirrors       : https://rhui.ap-northeast-1.aws.ce.redhat.com/pulp/mirror/content/dist/rhel9/rhui/9/x86_64/baseos/os
Repo-baseurl       : https://rhui.ap-northeast-1.aws.ce.redhat.com/pulp/content/content/dist/rhel9/rhui/9/x86_64/baseos/os (0 more)
Repo-filename      : /etc/yum.repos.d/redhat-rhui.repo

[root@rhel95 ec2-user]# cat /etc/yum.repos.d/redhat-rhui.repo| grep -e '^$' -e 'https' -e "\\[" -e 'enabled' -e 'name'
(一部出力省略)

[rhel-9-appstream-rhui-rpms]
name=Red Hat Enterprise Linux 9 for $basearch - AppStream from RHUI (RPMs)
mirrorlist=https://rhui.REGION.aws.ce.redhat.com/pulp/mirror/content/dist/rhel9/rhui/$releasever/$basearch/appstream/os
enabled=1

[rhel-9-baseos-rhui-rpms]
name=Red Hat Enterprise Linux 9 for $basearch - BaseOS from RHUI (RPMs)
mirrorlist=https://rhui.REGION.aws.ce.redhat.com/pulp/mirror/content/dist/rhel9/rhui/$releasever/$basearch/baseos/os
enabled=1

 

Oracle Linuxのリポジトリ設定

 
Oracle Linuxでもrepoファイルをみてみましょう。
すると、リポジトリのURLについて、リリースバージョンに該当する箇所がなく、$releasever変数を使用していないことがわかります。

baseurl=https://yum$ociregion.$ocidomain/repo/OracleLinux/OL9/baseos/latest/$basearch/

releaseverオプションを使用したとしても、そもそも$releasever変数を使用してないため、エラーが発生することなく、機能しないという動作となることがこれで確認できました。

 

# dnf repoinfo ol9_baseos_latest | grep -e 'https' -e 'name'
Last metadata expiration check: 2:41:48 ago on Thu 22 May 2025 04:27:44 AM GMT.
Repo-name          : Oracle Linux 9 BaseOS Latest (x86_64)
Repo-baseurl       : https://yum.ap-tokyo-1.oci.oraclecloud.com/repo/OracleLinux/OL9/baseos/latest/x86_64/
Repo-filename      : /etc/yum.repos.d/oracle-linux-ol9.repo

# cat /etc/yum.repos.d/oracle-linux-ol9.repo | grep -e '^$' -e 'https' -e "\\[" -e 'enabled' -e 'name'
(一部出力省略)
[ol9_baseos_latest]
name=Oracle Linux 9 BaseOS Latest ($basearch)
baseurl=https://yum$ociregion.$ocidomain/repo/OracleLinux/OL9/baseos/latest/$basearch/
enabled=1

[ol9_appstream]
name=Oracle Linux 9 Application Stream Packages ($basearch)
baseurl=https://yum$ociregion.$ocidomain/repo/OracleLinux/OL9/appstream/$basearch/
enabled=1

[ol9_u4_baseos_base]
name=Oracle Linux 9.4 BaseOS ($basearch)
baseurl=https://yum$ociregion.$ocidomain/repo/OracleLinux/OL9/4/baseos/base/$basearch/
enabled=0

[ol9_u5_baseos_base]
name=Oracle Linux 9.5 BaseOS ($basearch)
baseurl=https://yum$ociregion.$ocidomain/repo/OracleLinux/OL9/5/baseos/base/$basearch/
enabled=0

 
 

RHEL系OS全てでreleaseverオプションが動作するわけではない

 
dnfコマンド側の機能は非常にシンプルで、relasever変数の値を上書きするだけでした。

 
リポジトリのURLにリリースバージョンを含んでいることや、repoファイルでのURLの記載に$releasever変数を使用するといった条件を満たしていないため、Oracle Linuxでは動作しないということが分かりました。

 
Alma LinuxやAmazon Linuxではreleaseverオプションは機能するため、各ディストリビューションごとに状況は異なるようです。

 
最後までご覧いただきありがとうございました。

 
 

参考資料

AL2023 でパッケージとオペレーティングシステムの更新を管理する

Oracle Linux: How to Use yum releasever Option (Doc ID 2708618.1)

Oracle Linux6 8.4.3. yum 変数の使用


この記事が気に入ったら
「いいね!」

この記事を書いた人


関連コンテンツ

CONTACT お問い合わせ

Cloudiiのサービスやプロダクトについて
興味をお持ちの方は、
お気軽にお問い合わせください。