Oracle Linux 8でリリースバージョン固定する方法

Oralce Linux 8.2で導入したい、という要請があった。

(AlmaLinux/RockyLinux/CentOSでの設定については「AlmaLinux /Rocky Linuxのリリースバージョン固定方法」を参照)

Oralce Linux 8.2メディアでインストールすればいい、とは言うものの、パッケージが足らない時にうっかり「dnf install xxxx」とかやってしまうと新しいバージョンを入れてしまう可能性が・・・

有限会社ルートリンクス「RHEL 8 リリースバージョンを指定してアップデート」という記事を見つけて試してみたが、なんか無視されて新しいバージョンを引っ張ってる気がする・・・RHEL8なら有効なのかな?

Oracle Linux 8のドキュメントを探してみる・・・

参考ドキュメント:Oracle® Linux 8 Oracle Linuxでのソフトウェアの管理の「Oracle Linux Yumサーバーを使用するためのシステムの構成

固定手法について直接の記述はないが「ISOイメージを使用したローカルYumリポジトリの提供」というものがあり、ISOイメージをメインレポジトリとして設定し、それ以外を無効化する、という手法が書かれている。

この手法をそのまま使えば、配置したISOのバージョンで固定できる。

8.2で提供された更新だけ適用できないかな?というもくろみもあって、ISOイメージを使わないで実現する手法がないか試してみた。

なお、結論としては無償でできる範囲には無いようだった。

使用可能なULNチャネル」の説明を読むとOracleのULNサブスクリプション購読者は「ol8_arch_u?_baseos_patch」というレポジトリでBaseOSに関してはリリースごとのパッチが適用できるようだ。AppStreamについては特に定義されていないようだ。


  1. ISOファイルをローカルディスクに配置
  2. /etc/fstabに「/ISOs/OracleLinux.iso /var/OSimage/OL_x86_64 iso9660 loop,ro 0 0」というようなエントリ追加
  3. /etc/yum.repos.d/ にファイル作成

ここから参考記録

ISOメディアを使わず、ULNサブスクリプションも登録しない状態で何かできるかを試してみたものが、下記の記述となる。

1[root@oraclelinux ~]# dnf repolist --all
2repo id               repo name                                         status
3ol8_UEKR6             Latest Unbreakable Enterprise Kernel Release 6 fo enabled
4ol8_UEKR6_RDMA        Oracle Linux 8 UEK6 RDMA (x86_64)                 disabled
5ol8_addons            Oracle Linux 8 Addons (x86_64)                    disabled
6ol8_appstream         Oracle Linux 8 Application Stream (x86_64)        enabled
7ol8_baseos_latest     Oracle Linux 8 BaseOS Latest (x86_64)             enabled
8ol8_codeready_builder Oracle Linux 8 CodeReady Builder (x86_64) - Unsup disabled
9ol8_u0_baseos_base    Oracle Linux 8 BaseOS GA (x86_64)                 disabled
10ol8_u1_baseos_base    Oracle Linux 8.1 BaseOS (x86_64)                  disabled
11ol8_u2_baseos_base    Oracle Linux 8.2 BaseOS (x86_64)                  disabled
12[root@oraclelinux ~]#

レポジトリリストを見てみたところ「Oracle Linux 8.2 BaseOS (x86_64)」などというそれっぽいものがあるので、ISOイメージの手法にならってまずは「dnf config-manager –disable *」を実行して全レポジトリを無効化

1[root@oraclelinux ~]# dnf config-manager --disable \*
2[root@oraclelinux ~]# dnf repolist --all
3repo id               repo name                                         status
4ol8_UEKR6             Latest Unbreakable Enterprise Kernel Release 6 fo disabled
5ol8_UEKR6_RDMA        Oracle Linux 8 UEK6 RDMA (x86_64)                 disabled
6ol8_addons            Oracle Linux 8 Addons (x86_64)                    disabled
7ol8_appstream         Oracle Linux 8 Application Stream (x86_64)        disabled
8ol8_baseos_latest     Oracle Linux 8 BaseOS Latest (x86_64)             disabled
9ol8_codeready_builder Oracle Linux 8 CodeReady Builder (x86_64) - Unsup disabled
10ol8_u0_baseos_base    Oracle Linux 8 BaseOS GA (x86_64)                 disabled
11ol8_u1_baseos_base    Oracle Linux 8.1 BaseOS (x86_64)                  disabled
12ol8_u2_baseos_base    Oracle Linux 8.2 BaseOS (x86_64)                  disabled
13[root@oraclelinux ~]#

続いてOracle Linux 8.2で固定したいので、「ol8_u2_baseos_base」だけを有効化するために「dnf config-manager –enable ol8_u2_baseos_base」を実行

1[root@oraclelinux ~]#
2[root@oraclelinux ~]# dnf repolist --all
3repo id               repo name                                         status
4ol8_UEKR6             Latest Unbreakable Enterprise Kernel Release 6 fo disabled
5ol8_UEKR6_RDMA        Oracle Linux 8 UEK6 RDMA (x86_64)                 disabled
6ol8_addons            Oracle Linux 8 Addons (x86_64)                    disabled
7ol8_appstream         Oracle Linux 8 Application Stream (x86_64)        disabled
8ol8_baseos_latest     Oracle Linux 8 BaseOS Latest (x86_64)             disabled
9ol8_codeready_builder Oracle Linux 8 CodeReady Builder (x86_64) - Unsup disabled
10ol8_u0_baseos_base    Oracle Linux 8 BaseOS GA (x86_64)                 disabled
11ol8_u1_baseos_base    Oracle Linux 8.1 BaseOS (x86_64)                  disabled
12ol8_u2_baseos_base    Oracle Linux 8.2 BaseOS (x86_64)                  enabled
13[root@oraclelinux ~]#

この状態で「dnf check-update」を実行してみる。

1[root@oraclelinux ~]# dnf clean all
223 files removed
3[root@oraclelinux ~]# dnf check-update
4Oracle Linux 8.2 BaseOS (x86_64)                 10 MB/s | 3.3 MB     00:00
5Last metadata expiration check: 0:00:01 ago on Wed Oct 20 19:01:10 2021.
6[root@oraclelinux ~]#

アップデートは取りに行かない。

が・・・phpをインストールしようとしたら見つからない・・・

1[root@oraclelinux ~]# dnf module list
2Last metadata expiration check: 0:08:47 ago on Wed Oct 20 19:01:10 2021.
3@modulefailsafe
4Name                     Stream        Profiles         Summary
5satellite-5-client       1.0 [e]       common, gui      ULN client packages
6 
7Hint: [d]efault, [e]nabled, [x]disabled, [i]nstalled
8[root@oraclelinux ~]# dnf search php
9Last metadata expiration check: 0:09:10 ago on Wed Oct 20 19:01:10 2021.
10No matches found.
11[root@oraclelinux ~]#

phpはAppStreamレポジトリに含まれるものであるため、BaseOSしか登録していない現状では表示されません。

この他、AppStreamに含まれるパッケージで必要なものがいろいろあるため、この手法を取るには無理がある、という形となった。

では、RHEL8みたいにreleaseverという指定ができるか、というところについて /etc/yum.repos.d/oracle-linux-ol8.repo の内容を確認すると、$releasever という定義が使われてない。

1[root@oraclelinux ~]# cat /etc/yum.repos.d/oracle-linux-ol8.repo
2[ol8_baseos_latest]
3name=Oracle Linux 8 BaseOS Latest ($basearch)
4baseurl=https://yum$ociregion.oracle.com/repo/OracleLinux/OL8/baseos/latest/$basearch/
6gpgcheck=1
7enabled=0
8[ol8_appstream]
9name=Oracle Linux 8 Application Stream ($basearch)
10baseurl=https://yum$ociregion.oracle.com/repo/OracleLinux/OL8/appstream/$basearch/
12gpgcheck=1
13enabled=0
14[ol8_codeready_builder]
15name=Oracle Linux 8 CodeReady Builder ($basearch) - Unsupported
16baseurl=https://yum$ociregion.oracle.com/repo/OracleLinux/OL8/codeready/builder/$basearch/
18gpgcheck=1
19enabled=0
20[ol8_u0_baseos_base]
21name=Oracle Linux 8 BaseOS GA ($basearch)
22baseurl=https://yum$ociregion.oracle.com/repo/OracleLinux/OL8/0/baseos/base/$basearch/
24gpgcheck=1
25enabled=0
26[ol8_u1_baseos_base]
27name=Oracle Linux 8.1 BaseOS ($basearch)
28baseurl=https://yum$ociregion.oracle.com/repo/OracleLinux/OL8/1/baseos/base/$basearch/
30gpgcheck=1
31enabled=0
32[ol8_u2_baseos_base]
33name=Oracle Linux 8.2 BaseOS ($basearch)
34baseurl=https://yum$ociregion.oracle.com/repo/OracleLinux/OL8/2/baseos/base/$basearch/
36gpgcheck=1
37enabled=1
38[ol8_addons]
39name=Oracle Linux 8 Addons ($basearch)
40baseurl=https://yum$ociregion.oracle.com/repo/OracleLinux/OL8/addons/$basearch/
42gpgcheck=1
43enabled=0
44[root@oraclelinux ~]#

yum.oracle.com にあるOracle Linux 8 RepositoriesでもAppStreamは1種類しか紹介されていない。Base OSアップデートされたパッケージについてはbaseos latest、AppStreamのアップデートされたパッケージはappstreamに配置されていた。

というわけで、Oracle Linux 8において、バージョン固定にする方法は、おとなしく 「1.8 ISOイメージを使用したローカルYumリポジトリの作成」 をつかっとけ、という話になるようだ。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

This site uses Akismet to reduce spam. Learn how your comment data is processed.

StatCounter - Free Web Tracker and Counter