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* kernel 3.10.0-229 3.10.0-229
release 7.1.1503 7.2.1511
kernel* centos* kernel 3.10.0-229 3.10.0-229
release 7.1.1503 7.1.1503

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

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

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

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

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

[main]
・・・
exclude=kernel*
・・・

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

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

現在のバージョン確認Raw Code(S)Raw Code(T)
# 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 でシステムアップデートRaw Code(S)Raw Code(T)
# 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 へバージョンアップされていることが分かります。 (ここでは確認してませんが、その他、パッケージ類は全てアップデートされてます)

アップデート前
# 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
アップデート後
# 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 に以下を追加します。

[main]
・・・
exclude=kernel* centos*
・・・

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

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

現在のバージョン確認Raw Code(S)Raw Code(T)
# 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 でシステムアップデートRaw Code(S)Raw Code(T)
# 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 リリース両方ともバージョンアップ前と一緒で、特に変化はないことが分かります。 (ここでは確認してませんが、その他、パッケージ類は全てアップデートされてます)

アップデート前
# 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
アップデート後
# 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 システムアップデート でした。