Oracle Linux ：yumでリリースバージョンのみが上がらないようにする


#１．はじめに

運用する中で定期的にカーネルはアップデートしたいけど、リリースバージョンは上げたくない。というときに行う手順。

結果から先に書くと、yum updateで以下を除外すればOK。
`redhat-release-*`
`oraclelinux-release*`

以降は実機確認結果

#２．環境

```
[root@devlnx01 ~]# uname -a
Linux devlnx01 4.1.12-124.20.3.el7uek.x86_64 #2 SMP Thu Oct 11 17:44:28 PDT 2018 x86_64 x86_64 x86_64 GNU/Linux

[root@devlnx01 ~]# cat /etc/redhat-release 
Red Hat Enterprise Linux Server release 7.5 (Maipo)

[root@devlnx01 ~]# cat /etc/oracle-release 
Oracle Linux Server release 7.5

[root@devlnx01 ~]# cat /etc/yum.conf
[main]
cachedir=/var/cache/yum/$basearch/$releasever
keepcache=0
debuglevel=2
logfile=/var/log/yum.log
exactarch=1
obsoletes=1
gpgcheck=1
plugins=1
installonly_limit=2
・
・
・
```

#３．前提条件
事前にyumリポジトリは以下の手順で更新し、最新のOracle Linux 7を見に行くようになっています。

Red Hat Enterprise Linux, CentOS & Scientific Linux
http://yum.oracle.com/getting-started.html#red-hat-enterprise-linux-centos-scientific-linux



#４．事前確認

yum updateを実行すると、以下のようにカーネルとリリースバージョンもアップデート対象となる。

```
[root@devlnx01 ~]# yum update kernel* redhat-release* oraclelinux-release*
読み込んだプラグイン:langpacks
依存性の解決をしています
--> トランザクションの確認を実行しています。
---> パッケージ kernel.x86_64 0:3.10.0-1062.9.1.el7 を インストール
--> 依存性の処理をしています: linux-firmware >= 20190429-72 のパッケージ: kernel-3.10.0-1062.9.1.el7.x86_64
・
<中略>
・
===============================================================================================================================
 Package                          アーキテクチャー  バージョン                                     リポジトリー           容量
===============================================================================================================================
インストール中:
 kernel                           x86_64            3.10.0-1062.9.1.el7                            ol7_latest             50 M
 kernel-uek                       x86_64            4.14.35-1902.9.2.el7uek                        ol7_UEKR5              52 M
 kernel-uek-devel                 x86_64            4.14.35-1902.9.2.el7uek                        ol7_UEKR5              15 M
更新します:
 kernel-headers                   x86_64            3.10.0-1062.9.1.el7                            ol7_latest            8.7 M
 kernel-tools                     x86_64            3.10.0-1062.9.1.el7                            ol7_latest            7.8 M
 kernel-tools-libs                x86_64            3.10.0-1062.9.1.el7                            ol7_latest            7.8 M
 oraclelinux-release              x86_64            7:7.7-1.0.5.el7                                ol7_latest             55 k
 redhat-release-server            x86_64            1:7.7-10.0.1.el7                               ol7_latest             11 k
依存性関連での更新をします:
 libdtrace-ctf                    x86_64            1.1.0-1.el7                                    ol7_UEKR5              36 k
 linux-firmware                   noarch            999:20190627-999.2.git7ae3a09d.el7             ol7_latest             80 M

トランザクションの要約
===============================================================================================================================
インストール  3 パッケージ
更新          5 パッケージ (+2 個の依存関係のパッケージ)
```

#５．本題：リリースバージョンだけ除外する

### yum実行時に除外する

引数 --exclude を追加することでリリースバージョンが除外された

```
[root@devlnx01 ~]# yum update kernel* redhat-release* oraclelinux-release* --exclude redhat-release*,oraclelinux-release*
読み込んだプラグイン:langpacks
ol7_UEKR5                                                                                               | 2.5 kB  00:00:00     
ol7_latest                                                                                              | 2.7 kB  00:00:00     
依存性の解決をしています
--> トランザクションの確認を実行しています。
---> パッケージ kernel.x86_64 0:3.10.0-1062.9.1.el7 を インストール
--> 依存性の処理をしています: linux-firmware >= 20190429-72 のパッケージ: kernel-3.10.0-1062.9.1.el7.x86_64
・
<中略>
・
===============================================================================================================================
 Package                       アーキテクチャー   バージョン                                      リポジトリー            容量
===============================================================================================================================
インストール中:
 kernel                        x86_64             3.10.0-1062.9.1.el7                             ol7_latest              50 M
 kernel-uek                    x86_64             4.14.35-1902.9.2.el7uek                         ol7_UEKR5               52 M
 kernel-uek-devel              x86_64             4.14.35-1902.9.2.el7uek                         ol7_UEKR5               15 M
更新します:
 kernel-headers                x86_64             3.10.0-1062.9.1.el7                             ol7_latest             8.7 M
 kernel-tools                  x86_64             3.10.0-1062.9.1.el7                             ol7_latest             7.8 M
 kernel-tools-libs             x86_64             3.10.0-1062.9.1.el7                             ol7_latest             7.8 M
依存性関連での更新をします:
 libdtrace-ctf                 x86_64             1.1.0-1.el7                                     ol7_UEKR5               36 k
 linux-firmware                noarch             999:20190627-999.2.git7ae3a09d.el7              ol7_latest              80 M

トランザクションの要約
===============================================================================================================================
インストール  3 パッケージ
更新          3 パッケージ (+2 個の依存関係のパッケージ)
```

### デフォルト設定変更して除外 

/etc/yum.confを編集

```
[root@devlnx01 ~]# vi /etc/yum.conf

[main]
cachedir=/var/cache/yum/$basearch/$releasever
keepcache=0
debuglevel=2
logfile=/var/log/yum.log
exactarch=1
obsoletes=1
gpgcheck=1
plugins=1
installonly_limit=2
exclude=redhat-release* oraclelinux-release*  <---この1行を挿入
```

yum update を引数無しで実行しても、同様にリリースバージョンが上がらない事を確認できた。


```
[root@devlnx01 ~]# yum update kernel* redhat-release* oraclelinux-release*
読み込んだプラグイン:langpacks
ol7_UEKR5                                                                                               | 2.5 kB  00:00:00     
ol7_latest                                                                                              | 2.7 kB  00:00:00     
依存性の解決をしています
--> トランザクションの確認を実行しています。
---> パッケージ kernel.x86_64 0:3.10.0-1062.9.1.el7 を インストール
--> 依存性の処理をしています: linux-firmware >= 20190429-72 のパッケージ: kernel-3.10.0-1062.9.1.el7.x86_64
・
<中略>
・
===============================================================================================================================
 Package                       アーキテクチャー   バージョン                                      リポジトリー            容量
===============================================================================================================================
インストール中:
 kernel                        x86_64             3.10.0-1062.9.1.el7                             ol7_latest              50 M
 kernel-uek                    x86_64             4.14.35-1902.9.2.el7uek                         ol7_UEKR5               52 M
 kernel-uek-devel              x86_64             4.14.35-1902.9.2.el7uek                         ol7_UEKR5               15 M
更新します:
 kernel-headers                x86_64             3.10.0-1062.9.1.el7                             ol7_latest             8.7 M
 kernel-tools                  x86_64             3.10.0-1062.9.1.el7                             ol7_latest             7.8 M
 kernel-tools-libs             x86_64             3.10.0-1062.9.1.el7                             ol7_latest             7.8 M
依存性関連での更新をします:
 libdtrace-ctf                 x86_64             1.1.0-1.el7                                     ol7_UEKR5               36 k
 linux-firmware                noarch             999:20190627-999.2.git7ae3a09d.el7              ol7_latest              80 M

トランザクションの要約
===============================================================================================================================
インストール  3 パッケージ
更新          3 パッケージ (+2 個の依存関係のパッケージ)
```