CentOS 7 システムアップデートについて

通常、yum update をする際には、カーネルのバージョンが勝手に上がってしまうのを防ぐために、 /etc/yum.conf[main] チャネルに以下の設定してから yum update を実行するのが一般的です。

  • exclude=kernel* centos*

既にカーネルが最新になっていれば、別に設定しなくても問題ありませんが、カーネルのバージョンに依存しているアプリケーションが動いている場合に、勝手にカーネルのバージョンが上がってしまうと困るからです。

この例では、カーネルバージョン 3.10.0-229、 CentOS リリース 7.1.1503 の状態で、以下の 2パターンを試します。

  • yum.conf に exclude=kernel* を設定し、yum update した場合
  • yum.conf に exclude=kernel* centos* を設定し、yum update した場合
exclude項目yum アップデート前yum アップデート後
kernel*kernel3.10.0-2293.10.0-229
release7.1.15037.2.1511
kernel* centos*kernel3.10.0-2293.10.0-229
release7.1.15037.1.1503

システムアップデート その1. yum.conf に「exclude=kernel*」を設定した上で、yum update

この例では、カーネルのみアップデート対象から除外したため、yum update を実施するとカーネル以外のパッケージは全てアップデートされます。

そのため、カーネルバージョンはそのままで、CentOS リリースバージョンは、上がるはずです。

Step 1. カーネルだけを yum update 対象外にする

カーネルを yum update 対象外にするために、/etc/yum.conf に以下を追加します。

/etc/yum.conf
1
2
3
4
[main]
・・・
exclude=kernel*
・・・

Step 2. 現在のバージョン確認

yum update を実施する前に、現在のバージョンを確認します。

現在のバージョン確認
01
02
03
04
05
06
07
08
09
10
11
12
13
14
# uname -a
Linux centos 3.10.0-229.el7.x86_64 #1 SMP Fri Mar 6 11:36:42 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux

# cat /etc/redhat-release
CentOS Linux release 7.1.1503 (Core)

# rpm -qa | grep "^kernel" | sort
kernel-3.10.0-229.11.1.el7.x86_64
kernel-3.10.0-229.el7.x86_64
kernel-devel-3.10.0-229.11.1.el7.x86_64
kernel-devel-3.10.0-229.el7.x86_64
kernel-headers-3.10.0-229.11.1.el7.x86_64
kernel-tools-3.10.0-229.11.1.el7.x86_64
kernel-tools-libs-3.10.0-229.11.1.el7.x86_64

Step 3. システムアップデート

先に、yum のキャッシュをクリアしてから yum update でアップデートを実施します。

yum でシステムアップデート
001
002
003
004
005
006
007
008
009
010
011
012
013
014
015
016
017
018
019
020
021
022
023
024
025
026
027
028
029
030
031
032
033
034
035
036
037
038
039
040
041
042
043
044
045
046
047
048
049
050
051
052
053
054
055
056
057
058
059
060
061
062
063
064
065
066
067
068
069
070
071
072
073
074
075
076
077
078
079
080
081
082
083
084
085
086
087
088
089
090
091
092
093
094
095
096
097
098
099
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
# yum clean all

# yum  -y update
読み込んだプラグイン:fastestmirror, langpacks
Repodata is over 2 weeks old. Install yum-cron? Or run: yum makecache fast
base                                   | 3.6 kB  00:00:00
extras                                 | 3.4 kB  00:00:00
updates                                | 3.4 kB  00:00:00
(1/4): base/7/x86_64/group_gz          | 155 kB  00:00:00
(2/4): extras/7/x86_64/primary_db      | 149 kB  00:00:00
(3/4): updates/7/x86_64/primary_db     | 5.7 MB  00:00:00
(4/4): base/7/x86_64/primary_db        | 5.3 MB  00:00:01
Determining fastest mirrors
* base: centos.usonyx.net
* extras: ftp.iij.ad.jp
* updates: ftp.iij.ad.jp
依存性の解決をしています
--> トランザクションの確認を実行しています。
---> パッケージ ModemManager.x86_64 0:1.1.0-6.git20130913.el7 を 更新
---> パッケージ ModemManager.x86_64 0:1.1.0-8.git20130913.el7 を アップデート
---> パッケージ ModemManager-glib.x86_64 0:1.1.0-6.git20130913.el7 を 更新
---> パッケージ ModemManager-glib.x86_64 0:1.1.0-8.git20130913.el7 を アップデート

・・・

--> トランザクションの確認を実行しています。
---> パッケージ python-ply.noarch 0:3.4-10.el7 を インストール
--> 依存性解決を終了しました。

依存性を解決しました

============================================================================================================
 Package                                    アーキテクチャー バージョン                 リポジトリー   容量
============================================================================================================
インストール中:
 bluez                                      x86_64           5.23-4.el7                 base          991 k
     obex-data-server.x86_64 1:0.4.6-6.el7 を入れ替えます
 gdm                                        x86_64           1:3.14.2-12.el7            base          719 k
     gdm-libs.x86_64 1:3.8.4-32.el7 を入れ替えます
 gtk3                                       x86_64           3.14.13-16.el7             base          3.8 M
     adwaita-gtk3-theme.x86_64 3.8.4-3.el7 を入れ替えます
 python-libipa_hbac                         x86_64           1.13.0-40.el7_2.9          updates        94 k
     libipa_hbac-python.x86_64 1.12.2-58.el7_1.14 を入れ替えます
 totem                                      x86_64           1:3.14.3-5.el7             base          2.2 M
     totem-mozplugin.x86_64 1:3.8.2-5.el7 を入れ替えます
 xorg-x11-server-Xorg                       x86_64           1.17.2-10.el7              base          1.4 M
     xorg-x11-drv-modesetting.x86_64 0.8.0-13.el7 を入れ替えます
     xorg-x11-glamor.x86_64 0.6.0-2.20140918git347ef4f.el7 を入れ替えます
更新します:
 ModemManager                               x86_64           1.1.0-8.git20130913.el7    base          616 k
 ModemManager-glib                          x86_64           1.1.0-8.git20130913.el7    base          205 k
 NetworkManager                             x86_64           1:1.0.6-30.el7_2           updates       2.0 M
 NetworkManager-adsl                        x86_64           1:1.0.6-30.el7_2           updates       130 k

・・・

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

総ダウンロード容量: 631 M
Downloading packages:
No Presto metadata available for base
Not downloading deltainfo for extras, MD is 61 k and rpms are 14 k
updates/7/x86_64/prestodelta                                                                   | 603 kB  00:00:00
Delta RPMs reduced 113 M of updates to 30 M (73% saved)
(1/691): NetworkManager-glib-1.0.0-16.git20150121.b4ea599c.el7_1_1.0.6-30.el7_2.x86_64.drpm    | 220 kB  00:00:05
(2/691): NetworkManager-1.0.0-16.git20150121.b4ea599c.el7_1_1.0.6-30.el7_2.x86_64.drpm         | 1.5 MB  00:00:05
(3/691): NetworkManager-libnm-1.0.0-16.git20150121.b4ea599c.el7_1_1.0.6-30.el7_2.x86_64.drpm   | 365 kB  00:00:00
(4/691): anaconda-core-19.31.123-1.el7.centos.2_21.48.22.56-5.el7.centos.1.x86_64.drpm         | 1.0 MB  00:00:00

・・・

Finishing delta rebuilds of 20 package(s) (23 M)
------------------------------------------------------------------------------------------------------------
合計                                                                        6.1 MB/s | 548 MB  00:01:29
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  更新します : libgcc-4.8.5-4.el7.x86_64                            1/1315
  更新します : centos-release-7-2.1511.el7.centos.2.10.x86_64       2/1315
  更新します : 1:liberation-fonts-common-1.07.2-15.el7.noarch       3/1315
  更新します : 1:control-center-filesystem-3.14.5-8.el7.x86_64      4/1315

・・・

39728 blocks
  検証中 : libXext-1.3.3-3.el7.x86_64                               1/1315
  検証中 : iwl100-firmware-39.31.5.1-43.el7.noarch                  2/1315
  検証中 : kmenuedit-4.11.19-7.el7.x86_64                           3/1315
  検証中 : libxshmfence-1.2-1.el7.x86_64                            4/1315

・・・

インストール:
  bluez.x86_64 0:5.23-4.el7       gdm.x86_64 1:3.14.2-12.el7
  gtk3.x86_64 0:3.14.13-16.el7    python-libipa_hbac.x86_64 0:1.13.0-40.el7_2.9
  totem.x86_64 1:3.14.3-5.el7     xorg-x11-server-Xorg.x86_64 0:1.17.2-10.el7

依存性関連をインストールしました:
  adwaita-icon-theme.noarch 0:3.14.1-1.el7       check.x86_64 0:0.9.9-5.el7
  cheese-libs.x86_64 2:3.14.2-5.el7              colord-gtk.x86_64 0:0.1.25-4.el7
  compat-libcogl-pango12.x86_64 0:1.14.0-3.el7   compat-libcogl12.x86_64 0:1.14.0-3.el7
  compat-libcolord1.x86_64 0:1.0.4-1.el7         compat-poppler022.x86_64 0:0.22.5-4.el7

・・・

更新:
  ModemManager.x86_64 0:1.1.0-8.git20130913.el7      ModemManager-glib.x86_64 0:1.1.0-8.git20130913.el7
  NetworkManager.x86_64 1:1.0.6-30.el7_2             NetworkManager-adsl.x86_64 1:1.0.6-30.el7_2
  NetworkManager-bluetooth.x86_64 1:1.0.6-30.el7_2   NetworkManager-glib.x86_64 1:1.0.6-30.el7_2
  NetworkManager-libnm.x86_64 1:1.0.6-30.el7_2       NetworkManager-team.x86_64 1:1.0.6-30.el7_2

・・・

置換:
  adwaita-gtk3-theme.x86_64 0:3.8.4-3.el7                    gdm-libs.x86_64 1:3.8.4-32.el7
  libipa_hbac-python.x86_64 0:1.12.2-58.el7_1.14             obex-data-server.x86_64 1:0.4.6-6.el7
  totem-mozplugin.x86_64 1:3.8.2-5.el7                       xorg-x11-drv-modesetting.x86_64 0:0.8.0-13.el7
  xorg-x11-glamor.x86_64 0:0.6.0-2.20140918git347ef4f.el7

完了しました!

Step 4. アップデート後のバージョン確認

アップデートが終わったところで、バージョンを確認してみるとカーネルはそもままで、CentOS リリースが 7.1.1503 から 7.2.1511 へバージョンアップされていることが分かります。 (ここでは確認してませんが、その他、パッケージ類は全てアップデートされてます)

アップデート前
01
02
03
04
05
06
07
08
09
10
11
12
13
14
# uname -a
Linux centos 3.10.0-229.el7.x86_64 #1 SMP Fri Mar 6 11:36:42 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux

# cat /etc/redhat-release
CentOS Linux release 7.1.1503 (Core)

# rpm -qa | grep "^kernel" | sort
kernel-3.10.0-229.11.1.el7.x86_64
kernel-3.10.0-229.el7.x86_64
kernel-devel-3.10.0-229.11.1.el7.x86_64
kernel-devel-3.10.0-229.el7.x86_64
kernel-headers-3.10.0-229.11.1.el7.x86_64
kernel-tools-3.10.0-229.11.1.el7.x86_64
kernel-tools-libs-3.10.0-229.11.1.el7.x86_64
アップデート後
01
02
03
04
05
06
07
08
09
10
11
12
13
14
# uname -a
Linux centos 3.10.0-229.el7.x86_64 #1 SMP Fri Mar 6 11:36:42 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux

# cat /etc/redhat-release
CentOS Linux release 7.2.1511 (Core)

# rpm -qa | grep "^kernel" | sort
kernel-3.10.0-229.11.1.el7.x86_64
kernel-3.10.0-229.el7.x86_64
kernel-devel-3.10.0-229.11.1.el7.x86_64
kernel-devel-3.10.0-229.el7.x86_64
kernel-headers-3.10.0-229.11.1.el7.x86_64
kernel-tools-3.10.0-229.11.1.el7.x86_64
kernel-tools-libs-3.10.0-229.11.1.el7.x86_64

システムアップデート その2. yum.conf に「exclude=kernel* centos*」を設定した上で、yum update

この例では、カーネルと CentOS 関連パッケージをアップデート対象から除外したため、yum update を実施するとカーネルと CentOS を除いた全てのパッケージだけがアップデートされます。

そのため、カーネルと CentOS リリースバージョンはそのままで、上がらないはずです。

Step 1. カーネルと CentOS 関連パッケージを yum update 対象外にする

カーネルと CentOS 関連パッケージを yum update 対象外にするために、/etc/yum.conf に以下を追加します。

/etc/yum.conf
1
2
3
4
[main]
・・・
exclude=kernel* centos*
・・・

Step 2. 現在のバージョン確認

yum update を実施する前に、現在のバージョンを確認します。

現在のバージョン確認
01
02
03
04
05
06
07
08
09
10
11
12
13
14
# uname -a
Linux centos 3.10.0-229.el7.x86_64 #1 SMP Fri Mar 6 11:36:42 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux

# cat /etc/redhat-release
CentOS Linux release 7.1.1503 (Core)

# rpm -qa | grep "^kernel" | sort
kernel-3.10.0-229.11.1.el7.x86_64
kernel-3.10.0-229.el7.x86_64
kernel-devel-3.10.0-229.11.1.el7.x86_64
kernel-devel-3.10.0-229.el7.x86_64
kernel-headers-3.10.0-229.11.1.el7.x86_64
kernel-tools-3.10.0-229.11.1.el7.x86_64
kernel-tools-libs-3.10.0-229.11.1.el7.x86_64

Step 3. システムアップデート

先に、yum のキャッシュをクリアしてから yum update でアップデートを実施します。

yum でシステムアップデート
001
002
003
004
005
006
007
008
009
010
011
012
013
014
015
016
017
018
019
020
021
022
023
024
025
026
027
028
029
030
031
032
033
034
035
036
037
038
039
040
041
042
043
044
045
046
047
048
049
050
051
052
053
054
055
056
057
058
059
060
061
062
063
064
065
066
067
068
069
070
071
072
073
074
075
076
077
078
079
080
081
082
083
084
085
086
087
088
089
090
091
092
093
094
095
096
097
098
099
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
# yum clean all

# yum  -y update
読み込んだプラグイン:fastestmirror, langpacks
Repodata is over 2 weeks old. Install yum-cron? Or run: yum makecache fast
base                                   | 3.6 kB  00:00:00
extras                                 | 3.4 kB  00:00:00
updates                                | 3.4 kB  00:00:00
(1/4): base/7/x86_64/group_gz          | 155 kB  00:00:00
(2/4): extras/7/x86_64/primary_db      | 149 kB  00:00:00
(3/4): base/7/x86_64/primary_db        | 5.3 MB  00:00:01
(4/4): updates/7/x86_64/primary_db     | 5.7 MB  00:00:01
Determining fastest mirrors
* base: centos.usonyx.net
* extras: ftp.iij.ad.jp
* updates: ftp.iij.ad.jp
依存性の解決をしています
--> トランザクションの確認を実行しています。
---> パッケージ ModemManager.x86_64 0:1.1.0-6.git20130913.el7 を 更新
---> パッケージ ModemManager.x86_64 0:1.1.0-8.git20130913.el7 を アップデート
---> パッケージ ModemManager-glib.x86_64 0:1.1.0-6.git20130913.el7 を 更新
---> パッケージ ModemManager-glib.x86_64 0:1.1.0-8.git20130913.el7 を アップデート

・・・

--> トランザクションの確認を実行しています。
---> パッケージ python-ply.noarch 0:3.4-10.el7 を インストール
--> 依存性解決を終了しました。

依存性を解決しました

============================================================================================================
 Package                                    アーキテクチャー バージョン                 リポジトリー   容量
============================================================================================================
インストール中:
 bluez                                      x86_64           5.23-4.el7                 base          991 k
     obex-data-server.x86_64 1:0.4.6-6.el7 を入れ替えます
 gdm                                        x86_64           1:3.14.2-12.el7            base          719 k
     gdm-libs.x86_64 1:3.8.4-32.el7 を入れ替えます
 gtk3                                       x86_64           3.14.13-16.el7             base          3.8 M
     adwaita-gtk3-theme.x86_64 3.8.4-3.el7 を入れ替えます
 python-libipa_hbac                         x86_64           1.13.0-40.el7_2.9          updates        94 k
     libipa_hbac-python.x86_64 1.12.2-58.el7_1.14 を入れ替えます
 totem                                      x86_64           1:3.14.3-5.el7             base          2.2 M
     totem-mozplugin.x86_64 1:3.8.2-5.el7 を入れ替えます
 xorg-x11-server-Xorg                       x86_64           1.17.2-10.el7              base          1.4 M
     xorg-x11-drv-modesetting.x86_64 0.8.0-13.el7 を入れ替えます
     xorg-x11-glamor.x86_64 0.6.0-2.20140918git347ef4f.el7 を入れ替えます
更新します:
 ModemManager                               x86_64           1.1.0-8.git20130913.el7    base          616 k
 ModemManager-glib                          x86_64           1.1.0-8.git20130913.el7    base          205 k
 NetworkManager                             x86_64           1:1.0.6-30.el7_2           updates       2.0 M
 NetworkManager-adsl                        x86_64           1:1.0.6-30.el7_2           updates       130 k

・・・

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

総ダウンロード容量: 609 M
Downloading packages:
No Presto metadata available for base
Not downloading deltainfo for extras, MD is 61 k and rpms are 14 k
updates/7/x86_64/prestodelta                                                                   | 603 kB  00:00:00
Delta RPMs reduced 113 M of updates to 30 M (73% saved)
(1/689): NetworkManager-glib-1.0.0-16.git20150121.b4ea599c.el7_1_1.0.6-30.el7_2.x86_64.drpm    | 220 kB  00:00:00
(2/689): NetworkManager-libnm-1.0.0-16.git20150121.b4ea599c.el7_1_1.0.6-30.el7_2.x86_64.drpm   | 365 kB  00:00:00
(3/689): anaconda-core-19.31.123-1.el7.centos.2_21.48.22.56-5.el7.centos.1.x86_64.drpm         | 1.0 MB  00:00:00
(4/689): avahi-libs-0.6.31-14.el7_0.6.31-15.el7_2.1.x86_64.drpm                                |  23 kB  00:00:00

・・・

Finishing delta rebuilds of 12 package(s) (18 M)
------------------------------------------------------------------------------------------------------------
合計                                                                             6.5 MB/s | 527 MB  00:01:20
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  更新します : libgcc-4.8.5-4.el7.x86_64                                  1/1311
  更新します : 1:liberation-fonts-common-1.07.2-15.el7.noarch             2/1311
  更新します : 1:control-center-filesystem-3.14.5-8.el7.x86_64            3/1311
  更新します : hyperv-daemons-license-0-0.26.20150402git.el7.noarch       4/1311

・・・

39728 blocks
  検証中 : libXext-1.3.3-3.el7.x86_64                                     1/1311
  検証中 : iwl100-firmware-39.31.5.1-43.el7.noarch                        2/1311
  検証中 : kmenuedit-4.11.19-7.el7.x86_64                                 3/1311
  検証中 : libxshmfence-1.2-1.el7.x86_64                                  4/1311

・・・

インストール:
  bluez.x86_64 0:5.23-4.el7       gdm.x86_64 1:3.14.2-12.el7
  gtk3.x86_64 0:3.14.13-16.el7    python-libipa_hbac.x86_64 0:1.13.0-40.el7_2.9
  totem.x86_64 1:3.14.3-5.el7     xorg-x11-server-Xorg.x86_64 0:1.17.2-10.el7

依存性関連をインストールしました:
  adwaita-icon-theme.noarch 0:3.14.1-1.el7       check.x86_64 0:0.9.9-5.el7
  cheese-libs.x86_64 2:3.14.2-5.el7              colord-gtk.x86_64 0:0.1.25-4.el7
  compat-libcogl-pango12.x86_64 0:1.14.0-3.el7   compat-libcogl12.x86_64 0:1.14.0-3.el7
  compat-libcolord1.x86_64 0:1.0.4-1.el7         compat-poppler022.x86_64 0:0.22.5-4.el7

・・・

置換:
  adwaita-gtk3-theme.x86_64 0:3.8.4-3.el7           gdm-libs.x86_64 1:3.8.4-32.el7
  libipa_hbac-python.x86_64 0:1.12.2-58.el7_1.14    obex-data-server.x86_64 1:0.4.6-6.el7
  totem-mozplugin.x86_64 1:3.8.2-5.el7              xorg-x11-drv-modesetting.x86_64 0:0.8.0-13.el7
  xorg-x11-glamor.x86_64 0:0.6.0-2.20140918git347ef4f.el7

完了しました!

Step 4. アップデート後のバージョン確認

アップデートが終わったところで、バージョンを確認してみるとカーネルと CentOS リリース両方ともバージョンアップ前と一緒で、特に変化はないことが分かります。 (ここでは確認してませんが、その他、パッケージ類は全てアップデートされてます)

アップデート前
01
02
03
04
05
06
07
08
09
10
11
12
13
14
# uname -a
Linux centos 3.10.0-229.el7.x86_64 #1 SMP Fri Mar 6 11:36:42 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux

# cat /etc/redhat-release
CentOS Linux release 7.1.1503 (Core)

# rpm -qa | grep "^kernel" | sort
kernel-3.10.0-229.11.1.el7.x86_64
kernel-3.10.0-229.el7.x86_64
kernel-devel-3.10.0-229.11.1.el7.x86_64
kernel-devel-3.10.0-229.el7.x86_64
kernel-headers-3.10.0-229.11.1.el7.x86_64
kernel-tools-3.10.0-229.11.1.el7.x86_64
kernel-tools-libs-3.10.0-229.11.1.el7.x86_64
アップデート後
01
02
03
04
05
06
07
08
09
10
11
12
13
14
# uname -a
Linux centos 3.10.0-229.el7.x86_64 #1 SMP Fri Mar 6 11:36:42 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux

# cat /etc/redhat-release
CentOS Linux release 7.1.1503 (Core)

# rpm -qa | grep "^kernel" | sort
kernel-3.10.0-229.11.1.el7.x86_64
kernel-3.10.0-229.el7.x86_64
kernel-devel-3.10.0-229.11.1.el7.x86_64
kernel-devel-3.10.0-229.el7.x86_64
kernel-headers-3.10.0-229.11.1.el7.x86_64
kernel-tools-3.10.0-229.11.1.el7.x86_64
kernel-tools-libs-3.10.0-229.11.1.el7.x86_64

終わりに

ちなみに、パッケージによっては、依存関係上、kernel-headers が必要になってくる場合もありますので、そのときには、適宜 /etc/yum.conf 設定を変更する必要があります。

以上、CentOS 7 システムアップデート でした。