yumコマンドで覚えておきたい使い方19個(+1個)

CentOSなど、RHEL系のディストリビューションを使っているなら必ず一度は使ったことがあるであろうyumコマンド。
みんな使うけど、installとかupdateばかりで他のオプションはそんなに使われてない場合が多いような気もするが、使いこなせるとかなり便利な機能がいっぱいある。
…といっても、機能がありすぎるので、役に立ちそうなものだけを抜粋している。

1.パッケージをインストールする

yumを使ったことがあるなら、必ず一度は使っている使い方。
指定したパッケージを、yumリポジトリ(yumでインストールされるrpmパッケージのデータベースやデータそのものを持つ、貯蔵庫のようなもの)からインストールする使い方だ。
使い方も説明不要かと思うが、サブコマンド「install」にインストールするパッケージ名を引数として与えればよいだけだ。

yum install パッケージ名
[root@BS-PUB-CENT7-01 ~]# yum install wget
読み込んだプラグイン:fastestmirror
base                                                                    | 3.6 kB  00:00:00
extras                                                                  | 3.4 kB  00:00:00
updates                                                                 | 3.4 kB  00:00:00
(1/2): extras/7/x86_64/primary_db                                       | 160 kB  00:00:00
(2/2): updates/7/x86_64/primary_db                                      | 7.1 MB  00:00:00
Loading mirror speeds from cached hostfile
 * base: mirror.nus.edu.sg
 * extras: mirror.nus.edu.sg
 * updates: mirror.fairway.ne.jp
依存性の解決をしています
--> トランザクションの確認を実行しています。
---> パッケージ wget.x86_64 0:1.14-10.el7_0.1 を インストール
--> 依存性解決を終了しました。

依存性を解決しました

===============================================================================================
 Package           アーキテクチャー    バージョン                      リポジトリー       容量
===============================================================================================
インストール中:
 wget              x86_64              1.14-10.el7_0.1                 base              545 k

トランザクションの要約
===============================================================================================
インストール  1 パッケージ

総ダウンロード容量: 545 k
インストール容量: 2.0 M
Is this ok [y/d/N]: y
Downloading packages:
wget-1.14-10.el7_0.1.x86_64.rpm                                         | 545 kB  00:00:00
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  インストール中          : wget-1.14-10.el7_0.1.x86_64                                    1/1
  検証中                  : wget-1.14-10.el7_0.1.x86_64                                    1/1

インストール:
  wget.x86_64 0:1.14-10.el7_0.1

完了しました!

インストール時に聞かれる「y/n」については、「-y」オプションを付与することで自動的に処理がされる。
これについては他のサブコマンド処理でも同じだ。

2.パッケージをアップデートする

これも一度は使ったことがあるだろう。
すでにインストールされているパッケージのバージョンを上げる処理。引数に何も指定しないとアップデート可能なすべてのパッケージがアップデートされてしまうが、引数に対象のパッケージ名を与えることでそのパッケージのみをアップデートさせることができるようになる。

yum update
yum update パッケージ名 # パッケージを指定する場合

特定のバージョンにアップデートさせる場合は、パッケージ名-バージョンで指定してやるといいだろう。
指定できるバージョンについては、こちらにあるように「yum --showduplicates list パッケージ名」で確認してやればよい。

yum update パッケージ名-バージョン
[root@BS-PUB-CENT7-01 ~]# yum install httpd-2.4.6-40.el7.centos
読み込んだプラグイン:fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirror.nus.edu.sg
 * extras: mirror.nus.edu.sg
 * updates: mirror.fairway.ne.jp
依存性の解決をしています
--> トランザクションの確認を実行しています。
---> パッケージ httpd.x86_64 0:2.4.6-40.el7.centos を インストール
--> 依存性の処理をしています: httpd-tools = 2.4.6-40.el7.centos のパッケージ: httpd-2.4.6-40.el7.centos.x86_64
--> 依存性の処理をしています: /etc/mime.types のパッケージ: httpd-2.4.6-40.el7.centos.x86_64
--> 依存性の処理をしています: libaprutil-1.so.0()(64bit) のパッケージ: httpd-2.4.6-40.el7.centos.x86_64
--> 依存性の処理をしています: libapr-1.so.0()(64bit) のパッケージ: httpd-2.4.6-40.el7.centos.x86_64
--> トランザクションの確認を実行しています。
---> パッケージ apr.x86_64 0:1.4.8-3.el7 を インストール
---> パッケージ apr-util.x86_64 0:1.5.2-6.el7 を インストール
---> パッケージ httpd-tools.x86_64 0:2.4.6-40.el7.centos を インストール
---> パッケージ mailcap.noarch 0:2.1.41-2.el7 を インストール
--> 依存性解決を終了しました。

依存性を解決しました

===============================================================================================
 Package                アーキテクチャー  バージョン                     リポジトリー     容量
===============================================================================================
インストール中:
 httpd                  x86_64            2.4.6-40.el7.centos            base            2.7 M
依存性関連でのインストールをします:
 apr                    x86_64            1.4.8-3.el7                    base            103 k
 apr-util               x86_64            1.5.2-6.el7                    base             92 k
 httpd-tools            x86_64            2.4.6-40.el7.centos            base             82 k
 mailcap                noarch            2.1.41-2.el7                   base             31 k

トランザクションの要約
===============================================================================================
インストール  1 パッケージ (+4 個の依存関係のパッケージ)

総ダウンロード容量: 3.0 M
インストール容量: 10 M
Is this ok [y/d/N]: y
Downloading packages:
(1/5): apr-1.4.8-3.el7.x86_64.rpm                                       | 103 kB  00:00:00
(2/5): apr-util-1.5.2-6.el7.x86_64.rpm                                  |  92 kB  00:00:00
(3/5): mailcap-2.1.41-2.el7.noarch.rpm                                  |  31 kB  00:00:00
(4/5): httpd-tools-2.4.6-40.el7.centos.x86_64.rpm                       |  82 kB  00:00:00
(5/5): httpd-2.4.6-40.el7.centos.x86_64.rpm                             | 2.7 MB  00:00:00
-----------------------------------------------------------------------------------------------
合計                                                           2.8 MB/s | 3.0 MB  00:00:01
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  インストール中          : apr-1.4.8-3.el7.x86_64                                         1/5
  インストール中          : apr-util-1.5.2-6.el7.x86_64                                    2/5
  インストール中          : httpd-tools-2.4.6-40.el7.centos.x86_64                         3/5
  インストール中          : mailcap-2.1.41-2.el7.noarch                                    4/5
  インストール中          : httpd-2.4.6-40.el7.centos.x86_64                               5/5
  検証中                  : httpd-2.4.6-40.el7.centos.x86_64                               1/5
  検証中                  : apr-1.4.8-3.el7.x86_64                                         2/5
  検証中                  : mailcap-2.1.41-2.el7.noarch                                    3/5
  検証中                  : httpd-tools-2.4.6-40.el7.centos.x86_64                         4/5
  検証中                  : apr-util-1.5.2-6.el7.x86_64                                    5/5

インストール:
  httpd.x86_64 0:2.4.6-40.el7.centos

依存性関連をインストールしました:
  apr.x86_64 0:1.4.8-3.el7                            apr-util.x86_64 0:1.5.2-6.el7
  httpd-tools.x86_64 0:2.4.6-40.el7.centos            mailcap.noarch 0:2.1.41-2.el7

完了しました!
[root@BS-PUB-CENT7-01 ~]# yum --showduplicates list httpd
読み込んだプラグイン:fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirror.nus.edu.sg
 * extras: mirror.nus.edu.sg
 * updates: mirror.fairway.ne.jp
インストール済みパッケージ
httpd.x86_64                           2.4.6-40.el7.centos                              @base
利用可能なパッケージ
httpd.x86_64                           2.4.6-40.el7.centos                              base
httpd.x86_64                           2.4.6-40.el7.centos.1                            updates
httpd.x86_64                           2.4.6-40.el7.centos.4                            updates
[root@BS-PUB-WORDPRESS-02 ~]# yum install httpd-2.4.6-40.el7.centos.4
読み込んだプラグイン:fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirror.nus.edu.sg
 * extras: mirror.nus.edu.sg
 * updates: mirror.fairway.ne.jp
依存性の解決をしています
--> トランザクションの確認を実行しています。
---> パッケージ httpd.x86_64 0:2.4.6-40.el7.centos を 更新
---> パッケージ httpd.x86_64 0:2.4.6-40.el7.centos.4 を アップデート
--> 依存性の処理をしています: httpd-tools = 2.4.6-40.el7.centos.4 のパッケージ: httpd-2.4.6-40.el7.centos.4.x86_64
--> トランザクションの確認を実行しています。
---> パッケージ httpd-tools.x86_64 0:2.4.6-40.el7.centos を 更新
---> パッケージ httpd-tools.x86_64 0:2.4.6-40.el7.centos.4 を アップデート
--> 依存性解決を終了しました。

依存性を解決しました

===============================================================================================
 Package              アーキテクチャー
                                      バージョン                        リポジトリー      容量
===============================================================================================
更新します:
 httpd                x86_64          2.4.6-40.el7.centos.4             updates          2.7 M
依存性関連での更新をします:
 httpd-tools          x86_64          2.4.6-40.el7.centos.4             updates           83 k

トランザクションの要約
===============================================================================================
更新  1 パッケージ (+1 個の依存関係のパッケージ)

総ダウンロード容量: 2.8 M
Is this ok [y/d/N]: y
Downloading packages:
Delta RPMs disabled because /usr/bin/applydeltarpm not installed.
(1/2): httpd-tools-2.4.6-40.el7.centos.4.x86_64.rpm                     |  83 kB  00:00:00
(2/2): httpd-2.4.6-40.el7.centos.4.x86_64.rpm                           | 2.7 MB  00:00:00
-----------------------------------------------------------------------------------------------
合計                                                           3.4 MB/s | 2.8 MB  00:00:00
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  更新します              : httpd-tools-2.4.6-40.el7.centos.4.x86_64                       1/4
  更新します              : httpd-2.4.6-40.el7.centos.4.x86_64                             2/4
  整理中                  : httpd-2.4.6-40.el7.centos.x86_64                               3/4
  整理中                  : httpd-tools-2.4.6-40.el7.centos.x86_64                         4/4
  検証中                  : httpd-tools-2.4.6-40.el7.centos.4.x86_64                       1/4
  検証中                  : httpd-2.4.6-40.el7.centos.4.x86_64                             2/4
  検証中                  : httpd-2.4.6-40.el7.centos.x86_64                               3/4
  検証中                  : httpd-tools-2.4.6-40.el7.centos.x86_64                         4/4

更新:
  httpd.x86_64 0:2.4.6-40.el7.centos.4

依存性を更新しました:
  httpd-tools.x86_64 0:2.4.6-40.el7.centos.4

完了しました!

2-1.yum upgradeについて

また、似たようなコマンドで「yum upgrade」というコマンドがある。

yum upgrade

これは、「yum update --obsoletes」と同じ処理を行っているコマンドだ。
updateの際にすでに旧式となっているパッケージを削除し、適切なパッケージに置き換えてくれる処理として覚えておくといいだろう。

参考

2-2.アップデート可能なパッケージの一覧を取得する

アップデート可能なパッケージの一覧を取得したいだけなら、以下のコマンドで行える。

yum check-update
[root@BS-PUB-CENT7-01 ~]# yum check-update
読み込んだプラグイン:fastestmirror
Loading mirror speeds from cached hostfile
 * base: ftp.riken.jp
 * epel: ftp.riken.jp
 * extras: ftp.riken.jp
 * updates: ftp.riken.jp

elasticsearch.noarch                         2.4.0-1                          elasticsearch-2.x
Security: kernel-3.10.0-327.28.3.el7.x86_64 is an installed security update
Security: kernel-3.10.0-327.28.2.el7.x86_64 is the currently running version

2-3.指定したパッケージを除外する

特定のパッケージをアップデートから除外する場合は、「--exclude」オプションで対象のパッケージを指定する。

yum update --exclude=パッケージ名
[root@BS-PUB-CENT7-01 test]# yum check-update
読み込んだプラグイン:fastestmirror
Loading mirror speeds from cached hostfile
 * base: ftp.riken.jp
 * epel: ftp.riken.jp
 * extras: ftp.riken.jp
 * updates: ftp.riken.jp

elasticsearch.noarch                         2.4.0-1                          elasticsearch-2.x
Security: kernel-3.10.0-327.28.3.el7.x86_64 is an installed security update
Security: kernel-3.10.0-327.28.2.el7.x86_64 is the currently running version
[root@BS-PUB-CENT7-01 test]# yum update --exclude=elasticsearch
読み込んだプラグイン:fastestmirror
Loading mirror speeds from cached hostfile
 * base: ftp.riken.jp
 * epel: ftp.riken.jp
 * extras: ftp.riken.jp
 * updates: ftp.riken.jp
No packages marked for update
[root@BS-PUB-CENT7-01 test]# yum update
読み込んだプラグイン:fastestmirror
Loading mirror speeds from cached hostfile
 * base: ftp.riken.jp
 * epel: ftp.riken.jp
 * extras: ftp.riken.jp
 * updates: ftp.riken.jp
依存性の解決をしています
--> トランザクションの確認を実行しています。
---> パッケージ elasticsearch.noarch 0:2.3.4-1 を 更新
---> パッケージ elasticsearch.noarch 0:2.4.0-1 を アップデート
--> 依存性解決を終了しました。

依存性を解決しました

===============================================================================================
 Package                 アーキテクチャー バージョン         リポジトリー                 容量
===============================================================================================
更新します:
 elasticsearch           noarch           2.4.0-1            elasticsearch-2.x            26 M

トランザクションの要約
===============================================================================================
更新  1 パッケージ

総ダウンロード容量: 26 M
Is this ok [y/d/N]:

2-4.セキュリティ関連のアップデートのみ実行させる

セキュリティ関連のアップデートのみを実行させる場合は、「--security」オプションを付与してアップデートを行わせる。

yum --security update

ただし、これについてはCentOSではデフォルトのリポジトリにはセキュリティアップデートの情報が登録されないため正常に動かない。
CentOSでこの機能を利用するには、こちらにある手順を用いてセキュリティ情報を管理しているリポジトリを登録してやるとよいだろう。

3.パッケージをダウングレードする

パッケージを一つ前のバージョンに戻したい場合は、以下のようにコマンドを実行することでダウングレードが行える。

yum downgrade パッケージ名

もしくは、バージョンを指定させる場合には以下のようにコマンドを実行するとよいだろう。
指定できるバージョンについては、アップデートと同じように「yum --showduplicates list パッケージ名」で確認してやればよい。

yum downgrade パッケージ名-バージョン
[root@BS-PUB-CENT7-01 ~]# yum --showduplicates list elasticsearch
読み込んだプラグイン:fastestmirror
Loading mirror speeds from cached hostfile
 * base: ftp.iij.ad.jp
 * epel: ftp.iij.ad.jp
 * extras: ftp.iij.ad.jp
 * updates: ftp.iij.ad.jp
インストール済みパッケージ
elasticsearch.noarch                         2.3.5-1                         @elasticsearch-2.x
利用可能なパッケージ
elasticsearch.noarch                         2.0.0-1                         elasticsearch-2.x
elasticsearch.noarch                         2.0.1-1                         elasticsearch-2.x
elasticsearch.noarch                         2.0.2-1                         elasticsearch-2.x
elasticsearch.noarch                         2.1.0-1                         elasticsearch-2.x
elasticsearch.noarch                         2.1.1-1                         elasticsearch-2.x
elasticsearch.noarch                         2.1.2-1                         elasticsearch-2.x
elasticsearch.noarch                         2.2.0-1                         elasticsearch-2.x
elasticsearch.noarch                         2.2.1-1                         elasticsearch-2.x
elasticsearch.noarch                         2.2.2-1                         elasticsearch-2.x
elasticsearch.noarch                         2.3.0-1                         elasticsearch-2.x
elasticsearch.noarch                         2.3.1-1                         elasticsearch-2.x
elasticsearch.noarch                         2.3.2-1                         elasticsearch-2.x
elasticsearch.noarch                         2.3.3-1                         elasticsearch-2.x
elasticsearch.noarch                         2.3.4-1                         elasticsearch-2.x
elasticsearch.noarch                         2.3.5-1                         elasticsearch-2.x
elasticsearch.noarch                         2.4.0-1                         elasticsearch-2.x
[root@BS-PUB-CENT7-01 ~]# yum downgrade elasticsearch
読み込んだプラグイン:fastestmirror
Loading mirror speeds from cached hostfile
 * base: ftp.iij.ad.jp
 * epel: ftp.iij.ad.jp
 * extras: ftp.iij.ad.jp
 * updates: ftp.iij.ad.jp
依存性の解決をしています
--> トランザクションの確認を実行しています。
---> パッケージ elasticsearch.noarch 0:2.3.4-1 を ダウングレード
---> パッケージ elasticsearch.noarch 0:2.3.5-1 を 削除
--> 依存性解決を終了しました。

依存性を解決しました

===============================================================================================
 Package                 アーキテクチャー バージョン         リポジトリー                 容量
===============================================================================================
ダウングレード中:
 elasticsearch           noarch           2.3.4-1            elasticsearch-2.x            26 M

トランザクションの要約
===============================================================================================
ダウングレード  1 パッケージ

総ダウンロード容量: 26 M
Is this ok [y/d/N]: y
Downloading packages:
elasticsearch-2.3.4.rpm                                                 |  26 MB  00:00:14
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
警告: RPMDB は yum 以外で変更されました。
  インストール中          : elasticsearch-2.3.4-1.noarch                                   1/2
  整理中                  : elasticsearch-2.3.5-1.noarch                                   2/2
  検証中                  : elasticsearch-2.3.4-1.noarch                                   1/2
  検証中                  : elasticsearch-2.3.5-1.noarch                                   2/2

削除しました:
  elasticsearch.noarch 0:2.3.5-1

インストール:
  elasticsearch.noarch 0:2.3.4-1

完了しました!

4.パッケージをアンインストールする

パッケージをアンインストールする場合は、以下のようにサブコマンドとして「erase」を指定してやればよい。

yum erase パッケージ名
[root@BS-PUB-CENT7-01 ~]# yum erase wget
読み込んだプラグイン:fastestmirror
依存性の解決をしています
--> トランザクションの確認を実行しています。
---> パッケージ wget.x86_64 0:1.14-10.el7_0.1 を 削除
--> 依存性解決を終了しました。

依存性を解決しました

===============================================================================================
 Package           アーキテクチャー    バージョン                     リポジトリー        容量
===============================================================================================
削除中:
 wget              x86_64              1.14-10.el7_0.1                @base              2.0 M

トランザクションの要約
===============================================================================================
削除  1 パッケージ

インストール容量: 2.0 M
上記の処理を行います。よろしいでしょうか? [y/N]y
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  削除中                  : wget-1.14-10.el7_0.1.x86_64                                    1/1
  検証中                  : wget-1.14-10.el7_0.1.x86_64                                    1/1

削除しました:
  wget.x86_64 0:1.14-10.el7_0.1

完了しました!

5.パッケージのリストを取得する

「yum list」を実行することで、設定されているリポジトリやローカルにインストールされているパッケージのリストを取得することができる。
さらに引数を付け加えることでupdateで指定できるパッケージやインストール済のパッケージのリストを抽出して取得することができる。

yum list
yum list installed # インストール済のパッケージを表示させる
yum list updates # アップデート可能なパッケージを表示させる
yum list available # 利用可能なパッケージを表示させる
yum list extras # 利用できないパッケージを表示させる

6.パッケージで利用できる各バージョンのリストを取得する

yumで、パッケージで利用できる各バージョンのリストを取得するには、以下のコマンドを実行すればよい。
現在のバージョン、ダウングレード、アップデートできるバージョンがそれぞれ色分けされて表示される。

yum --showduplicates list パッケージ名

[root@BS-PUB-CENT7-01 ~]# yum --showduplicates list elasticsearch
読み込んだプラグイン:fastestmirror
Loading mirror speeds from cached hostfile
 * base: ftp.riken.jp
 * epel: ftp.riken.jp
 * extras: ftp.riken.jp
 * updates: ftp.riken.jp
インストール済みパッケージ
elasticsearch.noarch                         2.3.4-1                         @elasticsearch-2.x
利用可能なパッケージ
elasticsearch.noarch                         2.0.0-1                         elasticsearch-2.x
elasticsearch.noarch                         2.0.1-1                         elasticsearch-2.x
elasticsearch.noarch                         2.0.2-1                         elasticsearch-2.x
elasticsearch.noarch                         2.1.0-1                         elasticsearch-2.x
elasticsearch.noarch                         2.1.1-1                         elasticsearch-2.x
elasticsearch.noarch                         2.1.2-1                         elasticsearch-2.x
elasticsearch.noarch                         2.2.0-1                         elasticsearch-2.x
elasticsearch.noarch                         2.2.1-1                         elasticsearch-2.x
elasticsearch.noarch                         2.2.2-1                         elasticsearch-2.x
elasticsearch.noarch                         2.3.0-1                         elasticsearch-2.x
elasticsearch.noarch                         2.3.1-1                         elasticsearch-2.x
elasticsearch.noarch                         2.3.2-1                         elasticsearch-2.x
elasticsearch.noarch                         2.3.3-1                         elasticsearch-2.x
elasticsearch.noarch                         2.3.4-1                         elasticsearch-2.x
elasticsearch.noarch                         2.3.5-1                         elasticsearch-2.x
elasticsearch.noarch                         2.4.0-1                         elasticsearch-2.x

7.パッケージの情報を取得する

サブコマンドとして「info」を指定することで、パッケージの情報を取得することができる。

yum info # 全パッケージ
yum info パッケージ名

[root@BS-PUB-CENT7-01 ~]# yum info wget
読み込んだプラグイン:fastestmirror
Loading mirror speeds from cached hostfile
 * base: ftp.riken.jp
 * epel: ftp.riken.jp
 * extras: ftp.riken.jp
 * updates: ftp.riken.jp
利用可能なパッケージ
名前                : wget
アーキテクチャー    : x86_64
バージョン          : 1.14
リリース            : 10.el7_0.1
容量                : 545 k
リポジトリー        : base/7/x86_64
要約                : A utility for retrieving files using the HTTP or FTP protocols
URL                 : http://www.gnu.org/software/wget/
ライセンス          : GPLv3+
説明                : GNU Wget is a file retrieval utility which can use either the HTTP or
                    : FTP protocols. Wget features include the ability to work in the
                    : background while you are logged out, recursive retrieval of
                    : directories, file name wildcard matching, remote file timestamp
                    : storage and comparison, use of Rest with FTP servers and Range with
                    : HTTP servers to retrieve files over slow or unstable connections,
                    : support for Proxy servers, and configurability.

8.グループインストールをする

yumでは、グループ名を指定することでパッケージをまとめてインストールさせることができる。

yum groups install グループ名

指定できるグループ名のリストおよびその内容については、以下のコマンドで確認できる。
なお、yum全体でいえることだが「-v」オプションを付与することでより細かい情報を表示させることもできる。

yum groups list # グループ名一覧
yum groups info グループ名 # 指定したグループの内容
[root@BS-PUB-CENT7-01 ~]# yum groups list
読み込んだプラグイン:fastestmirror
There is no installed groups file.
Maybe run: yum groups mark convert (see man yum)
Loading mirror speeds from cached hostfile
 * base: ftp.riken.jp
 * epel: ftp.riken.jp
 * extras: ftp.riken.jp
 * updates: ftp.riken.jp
Available Environment Groups:
   最小限のインストール
   Compute Node
   インフラストラクチャサーバー
   ファイルとプリントサーバー
   MATE デスクトップ
   ベーシック Web サーバー
   仮想化ホスト
   サーバー (GUI 使用)
   GNOME Desktop
   KDE Plasma Workspaces
   開発およびクリエイティブワークステーション
利用可能なグループ
   CIFS ファイルサーバー
   Eclipse
   FCoE ストレージクライアント
   Fedora パッケージャ
   Haskell のサポート
   Milkymist
   MySQL データベースクライアント
   MySQL データベースサーバー
   NFS サーバー
   SNMP のサポート
   TeX のサポート
   TurboGears アプリケーションフレームワーク
   WBEM のサポート
   Xfce
   iSCSI ストレージクライアント
   グラフィカル管理ツール
   コンソールインターネットツール
   サーバープラットフォーム
   サーバー環境の開発環境
   システム管理
   システム管理ツール
   ストレージ可用性ツール
   スマートカードサポート
   セキュリティツール
   デスクトップ
   デスクトップ環境
   デスクトップ環境の開発環境
   ネットワークストレージサーバー
   メッセージングクライアントのサポート
   メッセージングサーバーのサポート
   レガシーな UNIX 互換性
   互換性ライブラリ
   仮想化
   教育用ソフトウェア
   汎用デスクトップ
   科学的サポート
   開発ツール
   電子ラボラトリ
完了
[root@BS-PUB-CENT7-01 ~]# yum groups list -v
プラグイン「fastestmirror」を読み込んでいます
Config time: 0.011
Yum version: 3.4.3
There is no installed groups file.
Maybe run: yum groups mark convert (see man yum)
Setting up Package Sacks
Loading mirror speeds from cached hostfile
 * base: ftp.riken.jp
 * epel: ftp.riken.jp
 * extras: ftp.riken.jp
 * updates: ftp.riken.jp
pkgsack time: 0.033
group time: 0.216
Available Environment Groups:
   最小限のインストール (minimal)
   Compute Node (compute-node-environment)
   インフラストラクチャサーバー (infrastructure-server-environment)
   ファイルとプリントサーバー (file-print-server-environment)
   MATE デスクトップ (mate-desktop-environment)
   ベーシック Web サーバー (web-server-environment)
   仮想化ホスト (virtualization-host-environment)
   サーバー (GUI 使用) (graphical-server-environment)
   GNOME Desktop (gnome-desktop-environment)
   KDE Plasma Workspaces (kde-desktop-environment)
   開発およびクリエイティブワークステーション (developer-workstation-environment)
利用可能なグループ
   CIFS ファイルサーバー (cifs-file-server)
   Eclipse (eclipse)
   FCoE ストレージクライアント (storage-client-fcoe)
   Fedora パッケージャ (fedora-packager)
   Haskell のサポート (haskell)
   Milkymist (milkymist)
   MySQL データベースクライアント (mysql-client)
   MySQL データベースサーバー (mysql)
   NFS サーバー (nfs-file-server)
   SNMP のサポート (system-management-snmp)
   TeX のサポート (tex)
   TurboGears アプリケーションフレームワーク (turbogears)
   WBEM のサポート (system-management-wbem)
   Xfce (xfce-desktop)
   iSCSI ストレージクライアント (storage-client-iscsi)
   グラフィカル管理ツール (graphical-admin-tools)
   コンソールインターネットツール (console-internet)
   サーバープラットフォーム (server-platform)
   サーバー環境の開発環境 (server-platform-devel)
   システム管理 (system-management)
   システム管理ツール (system-admin-tools)
   ストレージ可用性ツール (storage-client-multipath)
   スマートカードサポート (smart-card)
   セキュリティツール (security-tools)
   デスクトップ (basic-desktop)
   デスクトップ環境 (desktop-platform)
   デスクトップ環境の開発環境 (desktop-platform-devel)
   ネットワークストレージサーバー (storage-server)
   メッセージングクライアントのサポート (system-management-messaging-client)
   メッセージングサーバーのサポート (system-management-messaging-server)
   レガシーな UNIX 互換性 (legacy-unix)
   互換性ライブラリ (compat-libraries)
   仮想化 (virtualization)
   教育用ソフトウェア (education)
   汎用デスクトップ (general-desktop)
   科学的サポート (scientific)
   開発ツール (development)
   電子ラボラトリ (electronic-lab)
完了
[root@BS-PUB-CENT7-01 ~]# yum groups info -v security-tools
プラグイン「fastestmirror」を読み込んでいます
Config time: 0.016
Yum version: 3.4.3
There is no installed groups file.
Maybe run: yum groups mark convert (see man yum)
Setting up Package Sacks
Loading mirror speeds from cached hostfile
 * base: ftp.riken.jp
 * epel: ftp.riken.jp
 * extras: ftp.riken.jp
 * updates: ftp.riken.jp
pkgsack time: 0.032
group time: 0.216

グループ: セキュリティツール
 グループ ID: security-tools
rpmdb time: 0.000
 説明: 整合性や信用を検証するセキュリティツール
 標準パッケージ:
   +scap-security-guide-0.1.25-3.el7.centos.0.1.noarch                                base
 オプション パッケージ:
   aide-0.15.1-9.el7.x86_64                                                           base
   hmaccalc-0.9.13-4.el7.x86_64                                                       base
   openscap-1.2.9-5.el7_2.i686                                                        updates
   openscap-1.2.9-5.el7_2.x86_64                                                      updates
   openscap-utils-1.2.9-5.el7_2.x86_64                                                updates
   scap-workbench-1.0.2-2.el7.x86_64                                                  base
   strongimcv-5.2.0-3.el7.i686                                                        base
   strongimcv-5.2.0-3.el7.x86_64                                                      base
   tncfhh-0.8.3-16.el7.i686                                                           base
   tncfhh-0.8.3-16.el7.x86_64                                                         base
   tpm-quote-tools-1.0.2-3.el7.x86_64                                                 base
   tpm-tools-1.3.8-6.el7.i686                                                         base
   tpm-tools-1.3.8-6.el7.x86_64                                                       base
   trousers-0.3.13-1.el7.i686                                                         base
   trousers-0.3.13-1.el7.x86_64                                                       @anaconda

また、アンインストールする場合には「groups remove」を、アップデートする場合には「groups update」を用いる。

yum groups remove グループ名 # アンインストール
yum groups update グループ名 # アップデート

9.メタデータなどのキャッシュファイルを削除・更新する

メタデータなどのキャッシュファイルが正常な状態になっておらず、yumでの処理が失敗するといったことがあるなら、「yum clean all」を用いる。

yum clean all

また、パッケージ情報を保持するメタデータの更新の間隔は、installやupdateの時に設定ファイルにある「metadata_expire」の値(デフォルトだと90分)の間隔で更新される。
もし今すぐにでもパッケージの最新情報を取得したい場合は、以下のコマンドを実行する。

yum makecache

10.リポジトリの一覧を取得する

使用できるリポジトリの一覧を取得する場合は、以下のコマンドを実行する。

yum repolist
[root@BS-PUB-CENT7-01 ~]# yum repolist
読み込んだプラグイン:fastestmirror
Loading mirror speeds from cached hostfile
 * base: ftp.riken.jp
 * epel: ftp.riken.jp
 * extras: ftp.riken.jp
 * updates: ftp.riken.jp
リポジトリー ID               リポジトリー名                                             状態
base/7/x86_64                 CentOS-7 - Base                                             9,007
elasticsearch-2.x             Elasticsearch repository for 2.x packages                      16
epel/x86_64                   Extra Packages for Enterprise Linux 7 - x86_64             10,540
extras/7/x86_64               CentOS-7 - Extras                                             376
graylog/x86_64                graylog                                                        10
mongodb-org-3.2/7             MongoDB Repository                                             50
security                      CentOS-7 - Security                                             0
updates/7/x86_64              CentOS-7 - Updates                                          2,311
repolist: 22,310
[root@BS-PUB-CENT7-01 ~]# yum repolist -v
プラグイン「fastestmirror」を読み込んでいます
Config time: 0.011
Yum version: 3.4.3
Loading mirror speeds from cached hostfile
 * base: ftp.riken.jp
 * epel: ftp.riken.jp
 * extras: ftp.riken.jp
 * updates: ftp.riken.jp
Setting up Package Sacks
pkgsack time: 0.015
リポジトリー ID            : base/7/x86_64
リポジトリーの名前         : CentOS-7 - Base
リポジトリーのリビジョン   : 1449700451
リポジトリー更新日         : Thu Dec 10 07:35:45 2015
リポジトリー内パッケージ数 : 9,007
リポジトリー容量           : 6.5 G
リポジトリーのミラー       : http://mirrorlist.centos.org/?release=7&arch=x86_64&repo=os&infra=stock
リポジトリー基準 URL       : http://ftp.riken.jp/Linux/centos/7.2.1511/os/x86_64/ (9 more)
リポジトリーの期限         : 21,600 秒 (最終: Fri Sep  9 07:46:43 2016)
Repo ファイル名: /etc/yum.repos.d/CentOS-Base.repo

リポジトリー ID            : elasticsearch-2.x
リポジトリーの名前         : Elasticsearch repository for 2.x packages
リポジトリーのリビジョン   : 1472465635
リポジトリー更新日         : Mon Aug 29 19:13:56 2016
リポジトリー内パッケージ数 : 16
リポジトリー容量           : 431 M
リポジトリー基準 URL       : https://packages.elastic.co/elasticsearch/2.x/centos/
リポジトリーの期限         : 21,600 秒 (最終: Fri Sep  9 07:46:45 2016)
Repo ファイル名: /etc/yum.repos.d/elasticsearch.repo

リポジトリー ID            : epel/x86_64
リポジトリーの名前         : Extra Packages for Enterprise Linux 7 - x86_64
リポジトリーのリビジョン   : 1473219190
リポジトリーのタグ         : binary-x86_64
リポジトリー更新日         : Wed Sep  7 15:03:11 2016
リポジトリー内パッケージ数 : 10,540
リポジトリー容量           : 11 G
リポジトリーメタリンク     : https://mirrors.fedoraproject.org/metalink?repo=epel-7&arch=x86_64
  更新日                   : Wed Sep  7 15:03:11 2016
リポジトリー基準 URL       : http://ftp.riken.jp/Linux/fedora/epel/7/x86_64/ (15 more)
リポジトリーの期限         : 21,600 秒 (最終: Fri Sep  9 07:46:46 2016)
Repo ファイル名: /etc/yum.repos.d/epel.repo

リポジトリー ID            : extras/7/x86_64
リポジトリーの名前         : CentOS-7 - Extras
リポジトリーのリビジョン   : 1473158555
リポジトリー更新日         : Tue Sep  6 19:43:22 2016
リポジトリー内パッケージ数 : 376
リポジトリー容量           : 1.0 G
リポジトリーのミラー       : http://mirrorlist.centos.org/?release=7&arch=x86_64&repo=extras&infra=stock
リポジトリー基準 URL       : http://ftp.riken.jp/Linux/centos/7.2.1511/extras/x86_64/ (9 more)
リポジトリーの期限         : 21,600 秒 (最終: Fri Sep  9 07:46:46 2016)
Repo ファイル名: /etc/yum.repos.d/CentOS-Base.repo

リポジトリー ID            : graylog/x86_64
リポジトリーの名前         : graylog
リポジトリーのリビジョン   : 1472742118
リポジトリー更新日         : Fri Sep  2 00:01:58 2016
リポジトリー内パッケージ数 : 10
リポジトリー容量           : 723 M
リポジトリー基準 URL       : https://packages.graylog2.org/repo/el/stable/2.0/x86_64/
リポジトリーの期限         : 21,600 秒 (最終: Fri Sep  9 07:46:49 2016)
Repo ファイル名: /etc/yum.repos.d/graylog.repo

リポジトリー ID            : mongodb-org-3.2/7
リポジトリーの名前         : MongoDB Repository
リポジトリーのリビジョン   : 1471372913
リポジトリー更新日         : Wed Aug 17 03:41:56 2016
リポジトリー内パッケージ数 : 50
リポジトリー容量           : 629 M
リポジトリー基準 URL       : https://repo.mongodb.org/yum/redhat/7/mongodb-org/3.2/x86_64/
リポジトリーの期限         : 21,600 秒 (最終: Fri Sep  9 07:46:49 2016)
Repo ファイル名: /etc/yum.repos.d/mongodb-org-3.2.repo

リポジトリー ID            : security
リポジトリーの名前         : CentOS-7 - Security
リポジトリーのリビジョン   : 1472865910
リポジトリー更新日         : Sat Sep  3 10:25:19 2016
リポジトリー内パッケージ数 : 0
リポジトリー容量           : 0
リポジトリー基準 URL       : file:///security/
リポジトリーの期限         : 21,600 秒 (最終: Fri Sep  9 07:46:49 2016)
Repo ファイル名: /etc/yum.repos.d/CentOS-Base.repo

リポジトリー ID            : updates/7/x86_64
リポジトリーの名前         : CentOS-7 - Updates
リポジトリーのリビジョン   : 1473131199
リポジトリー更新日         : Tue Sep  6 12:10:55 2016
リポジトリー内パッケージ数 : 2,311
リポジトリー容量           : 6.4 G
リポジトリーのミラー       : http://mirrorlist.centos.org/?release=7&arch=x86_64&repo=updates&infra=stock
リポジトリー基準 URL       : http://ftp.riken.jp/Linux/centos/7.2.1511/updates/x86_64/ (9 more)
リポジトリーの期限         : 21,600 秒 (最終: Fri Sep  9 07:46:49 2016)
Repo ファイル名: /etc/yum.repos.d/CentOS-Base.repo

repolist: 22,310

11.リポジトリの使用有無を指定する

yum実行時にリポジトリを使用するかどうかは、以下のオプションで指定できる。

yum --enablerepo=リポジトリ名 ~ # リポジトリを使用する
yum --disablerepo=リポジトリ名 ~ # リポジトリを使用しない

なお、各リポジトリがデフォルトで有効・無効になっているかは、「/etc/yum.repos.d/」配下にある各リポジトリの構成ファイルで設定されている。
リポジトリが有効か無効かを調べるには、上記構成ファイルを見るほかに以下のコマンドで確認する方法もある。

yum repoinfo リポジトリ
[root@BS-PUB-CENT7-01 ~]# yum repoinfo epel
読み込んだプラグイン:fastestmirror
Loading mirror speeds from cached hostfile
 * base: ftp.riken.jp
 * epel: ftp.riken.jp
 * extras: ftp.riken.jp
 * updates: ftp.riken.jp
リポジトリー ID            : epel/x86_64
リポジトリーの名前         : Extra Packages for Enterprise Linux 7 - x86_64
リポジトリーの状態         : 有効
リポジトリーのリビジョン   : 1473219190
リポジトリーのタグ         : binary-x86_64
リポジトリー更新日         : Wed Sep  7 15:03:11 2016
リポジトリー内パッケージ数 : 10,540
リポジトリー容量           : 11 G
リポジトリーメタリンク     : https://mirrors.fedoraproject.org/metalink?repo=epel-7&arch=x86_64
  更新日                   : Wed Sep  7 15:03:11 2016
リポジトリー基準 URL       : http://ftp.riken.jp/Linux/fedora/epel/7/x86_64/ (15 more)
リポジトリーの期限         : 21,600 秒 (最終: Fri Sep  9 07:46:46 2016)
Repo ファイル名: /etc/yum.repos.d/epel.repo

repolist: 10,540

12.パッケージを検索する

パッケージ名、詳細から検索をする場合は、「yum search」コマンドで検索ができる。

yum search テキスト
[root@BS-PUB-CENT7-01 ~]# yum search bash
読み込んだプラグイン:fastestmirror
Loading mirror speeds from cached hostfile
 * base: ftp.riken.jp
 * epel: ftp.riken.jp
 * extras: ftp.riken.jp
 * updates: ftp.riken.jp
====================================== N/S matched: bash ======================================
bash-argsparse.noarch : An high level argument parsing library for bash
bash-completion.noarch : Programmable completion for Bash
bash-completion-extras.noarch : Additional programmable completions for Bash
bash-doc.x86_64 : Documentation files for bash
bashdb.noarch : BASH debugger, the BASH symbolic debugger
bashmount.noarch : A menu-driven bash script for mounting removable media
libguestfs-bash-completion.noarch : Bash tab-completion scripts for libguestfs tools
pcp-pmda-bash.x86_64 : Performance Co-Pilot (PCP) metrics for the Bash shell
python-django-bash-completion.noarch : bash completion files for Django
bash.x86_64 : The GNU Bourne Again shell
bats.noarch : Bash Automated Testing System
python-argcomplete.noarch : Bash tab completion for argparse
sys_basher.x86_64 : A multithreaded hardware exerciser

  Name and summary matches only, use "search all" for everything.

13.指定したファイル・コマンド名から、どのパッケージが提供しているものか確認する

特定のコマンドやファイルがどのパッケージからインストールされるものなのかを調べる場合は、以下のようにコマンドを実行する。

yum provides コマンド名・ファイルPATH
[root@BS-PUB-CENT7-01 ~]# yum provides nping
読み込んだプラグイン:fastestmirror
Loading mirror speeds from cached hostfile
 * base: ftp.riken.jp
 * epel: ftp.riken.jp
 * extras: ftp.riken.jp
 * updates: ftp.riken.jp
base/7/x86_64/filelists_db                                              | 6.2 MB  00:00:01
elasticsearch-2.x/filelists_db                                          | 8.1 kB  00:00:00
epel/x86_64/filelists_db                                                | 7.2 MB  00:00:23
extras/7/x86_64/filelists_db                                            | 426 kB  00:00:00
graylog/x86_64/filelists_db                                             | 3.5 kB  00:00:00
mongodb-org-3.2/7/filelists_db                                          | 6.2 kB  00:00:00
security/filelists_db                                                   |  586 B  00:00:00
updates/7/x86_64/filelists_db                                           | 4.4 MB  00:00:00
2:nmap-6.40-7.el7.x86_64 : Network exploration tool and security scanner
リポジトリー        : base
一致          :
ファイル名    : /usr/bin/nping

上の例では、nmapパッケージに含まれるnpingコマンドを検索している。
結果、ちゃんとnmapパッケージを提示してくれたことがわかる。

14.yumで過去に行った処理を確認する

yumでは、過去に行った処理についてちゃんと記録している。
以下のコマンドで、過去の処理について一覧を表示させることができる。

yum history
[root@BS-PUB-CENT7-01 ~]# yum history
読み込んだプラグイン:fastestmirror
ID     | ログイン ユーザー        | 日時             | 操作           | 変更
-------------------------------------------------------------------------------
    20 | root               | 2016-09-09 08:02 | Erase          |    1
    19 | root               | 2016-09-09 08:02 | Install        |    5
    18 | root               | 2016-09-08 23:51 | Erase          |    1
    17 | root               | 2016-09-08 23:49 | Downgrade      |    1  <
    16 | root               | 2016-09-03 10:26 | I, U           |    4 >
    15 | root               | 2016-09-03 09:43 | Install        |    4
    14 | root               | 2016-09-03 09:38 | Install        |    1
    13 | root               | 2016-09-02 07:47 | Install        |  177
    12 | root               | 2016-09-02 07:45 | Update         |    1  <
    11 | root               | 2016-09-01 21:15 | Install        |    4 >
    10 | root               | 2016-09-01 06:34 | Install        |    1
     9 | root               | 2016-09-01 06:32 | Install        |   33
     8 | root               | 2016-08-30 07:43 | Install        |    1
     7 | root               | 2016-08-30 07:43 | Install        |    1
     6 | root               | 2016-08-30 07:41 | Install        |    1 E<
     5 | root               | 2016-08-30 07:35 | Install        |    5 >
     4 | root               | 2016-08-30 07:22 | Install        |    1 E<
     3 | root               | 2016-08-30 07:08 | Install        |    1 >
     2 | root               | 2016-08-19 08:57 | I, U           |   84
     1 | システム <未設定>        | 2016-01-01 22:59 | Install        |  297
history list

とはいえ、これだけではまだ何とも詳細がわからない。
そこで、以下コマンドで対象の履歴番号を指定して実行することで、その詳細を確認する。

yum history info 履歴番号
[root@BS-PUB-CENT7-01 ~]# yum history info 16
読み込んだプラグイン:fastestmirror
トランザクション ID : 16
開始時間            : Sat Sep  3 10:26:43 2016
開始 rpmdb          : 531:1e2be643da9f69ee5ee6a71d1edce293e2a16457
終了時間            :            10:28:56 2016 (133 秒)
終了 rpmdb          : 532:090b2d84288ccfd0620dabff0ff67ea1ae2d9770
ユーザー            : root 
終了コード          : 成功
コマンドライン      : --security update
トランザクションの実行:
    インストール rpm-4.11.3-17.el7.x86_64                      @anaconda
    インストール yum-3.4.3-132.el7.centos.0.1.noarch           @anaconda
    インストール yum-plugin-fastestmirror-1.1.31-34.el7.noarch @anaconda
切り替えたパッケージ:
    インストール kernel-3.10.0-327.28.3.el7.x86_64            @updates
    更新   kernel-tools-3.10.0-327.28.2.el7.x86_64      @updates
    更新                3.10.0-327.28.3.el7.x86_64      @updates
    更新   kernel-tools-libs-3.10.0-327.28.2.el7.x86_64 @updates
    更新                     3.10.0-327.28.3.el7.x86_64 @updates
    更新   python-perf-3.10.0-327.28.2.el7.x86_64       @updates
    更新               3.10.0-327.28.3.el7.x86_64       @updates
history info

15.yumで過去に行った処理を取り消す

yumで過去に行った処理を取り消すこともできる。
取り消す履歴番号を調べたあとに、以下のコマンドを実行する。

yum history undo 履歴番号
[root@BS-PUB-CENT7-01 ~]# yum history
読み込んだプラグイン:fastestmirror
ID     | ログイン ユーザー        | 日時             | 操作           | 変更
-------------------------------------------------------------------------------
    20 | root               | 2016-09-09 08:02 | Erase          |    1
    19 | root               | 2016-09-09 08:02 | Install        |    5
    18 | root               | 2016-09-08 23:51 | Erase          |    1
    17 | root               | 2016-09-08 23:49 | Downgrade      |    1  <
    16 | root               | 2016-09-03 10:26 | I, U           |    4 >
    15 | root               | 2016-09-03 09:43 | Install        |    4
    14 | root               | 2016-09-03 09:38 | Install        |    1
    13 | root               | 2016-09-02 07:47 | Install        |  177
    12 | root               | 2016-09-02 07:45 | Update         |    1  <
    11 | root               | 2016-09-01 21:15 | Install        |    4 >
    10 | root               | 2016-09-01 06:34 | Install        |    1
     9 | root               | 2016-09-01 06:32 | Install        |   33
     8 | root               | 2016-08-30 07:43 | Install        |    1
     7 | root               | 2016-08-30 07:43 | Install        |    1
     6 | root               | 2016-08-30 07:41 | Install        |    1 E<
     5 | root               | 2016-08-30 07:35 | Install        |    5 >
     4 | root               | 2016-08-30 07:22 | Install        |    1 E<
     3 | root               | 2016-08-30 07:08 | Install        |    1 >
     2 | root               | 2016-08-19 08:57 | I, U           |   84
     1 | システム <未設定>        | 2016-01-01 22:59 | Install        |  297
history list
[root@BS-PUB-CENT7-01 ~]# yum history info 20
読み込んだプラグイン:fastestmirror
トランザクション ID : 20
開始時間            : Fri Sep  9 08:02:42 2016
開始 rpmdb          : 537:d92e64f2f7ef42c9916e57a0498d3ca3855c7d89
終了時間            :            08:02:43 2016 (1 秒)
終了 rpmdb          : 536:964566783155d79ae1fe21b57d5315a296d60eab
ユーザー            : root 
終了コード          : 成功
コマンドライン      : groups remove security-tools
トランザクションの実行:
    インストール rpm-4.11.3-17.el7.x86_64                      @anaconda
    インストール yum-3.4.3-132.el7.centos.0.1.noarch           @anaconda
    インストール yum-plugin-fastestmirror-1.1.31-34.el7.noarch @anaconda
切り替えたパッケージ:
    削除 scap-security-guide-0.1.25-3.el7.centos.0.1.noarch @base
history info
[root@BS-PUB-CENT7-01 ~]# yum history undo 20
読み込んだプラグイン:fastestmirror
Undoing transaction 20, from Fri Sep  9 08:02:42 2016
    削除 scap-security-guide-0.1.25-3.el7.centos.0.1.noarch @base
Loading mirror speeds from cached hostfile
 * base: ftp.riken.jp
 * epel: ftp.riken.jp
 * extras: ftp.riken.jp
 * updates: ftp.riken.jp
依存性の解決をしています
--> トランザクションの確認を実行しています。
---> パッケージ scap-security-guide.noarch 0:0.1.25-3.el7.centos.0.1 を インストール
--> 依存性解決を終了しました。

依存性を解決しました

===============================================================================================
 Package                     アーキテクチャー
                                            バージョン                      リポジトリー  容量
===============================================================================================
インストール中:
 scap-security-guide         noarch         0.1.25-3.el7.centos.0.1         base         672 k

トランザクションの要約
===============================================================================================
インストール  1 パッケージ

総ダウンロード容量: 672 k
インストール容量: 11 M
Is this ok [y/d/N]: y
Downloading packages:
scap-security-guide-0.1.25-3.el7.centos.0.1.noarch.rpm                  | 672 kB  00:00:00
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  インストール中          : scap-security-guide-0.1.25-3.el7.centos.0.1.noarch             1/1
  検証中                  : scap-security-guide-0.1.25-3.el7.centos.0.1.noarch             1/1

インストール:
  scap-security-guide.noarch 0:0.1.25-3.el7.centos.0.1

完了しました!

上の例では、一度行ったアンインストールを取り消した結果、パッケージを再度インストールしている。

16.対話的にコマンドを実行する

「yum shell」というコマンドを使うことで、yumに関する処理を対話的に行えるモードに切り替えることができる。

yum shell

17.パッケージをインストールせず、rpmファイルだけダウンロードだけする

yumからインストールをするのではなく、ネットワークから隔離された環境で使うためのrpmパッケージがほしい場合は、依存するパッケージを含めてそれらをまとめてダウンロードすることもできる。

yum install --downloadonly パッケージ名
yum install --downloadonly パッケージ名 --downloaddir=PATH

ただ、ちょっと問題があってこのコマンドを実行したマシンにすでにインストール済の場合、パッケージのダウンロードができない。
この場合は、「yum-utils」にある「yumdownloader」もしくは「repotrack」コマンドを利用する。「yum-utils」はそのままyumでインストールができる。

yum install yum-utils

で、yumdownloader、repotrackがインストールできたら、以下のコマンドでダウンロードする。
特にrepotrackはすごく、インストール済のパッケージでも依存パッケージ(それこそsystemdすら)とってくる。ただ、なぜかvimなどの一部パッケージについてはとってこれなかった。
yumdownloaderはコマンドを実行したOSでインストール済みのパッケージは持ってこれないので、使い分けだろう。

yumdownloader --resolve パッケージ名
repotrack パッケージ名
[root@BS-PUB-CENT7-01 test]# repotrack httpd
Downloading acl-2.2.51-12.el7.x86_64.rpm
Downloading apr-1.4.8-3.el7.x86_64.rpm
Downloading apr-util-1.5.2-6.el7.x86_64.rpm
Downloading audit-libs-2.4.1-5.el7.x86_64.rpm
Downloading audit-libs-2.4.1-5.el7.i686.rpm
Downloading basesystem-10.0-7.el7.centos.noarch.rpm
Downloading bash-4.2.46-20.el7_2.x86_64.rpm
Downloading binutils-2.23.52.0.1-55.el7.x86_64.rpm
Downloading bzip2-libs-1.0.6-13.el7.x86_64.rpm
Downloading bzip2-libs-1.0.6-13.el7.i686.rpm
Downloading ca-certificates-2015.2.6-70.1.el7_2.noarch.rpm
Downloading centos-logos-70.0.6-3.el7.centos.noarch.rpm
Downloading centos-release-7-2.1511.el7.centos.2.10.x86_64.rpm
Downloading chkconfig-1.3.61-5.el7_2.1.x86_64.rpm
Downloading coreutils-8.22-15.el7_2.1.x86_64.rpm
Downloading cpio-2.11-24.el7.x86_64.rpm
Downloading cracklib-2.9.0-11.el7.x86_64.rpm
Downloading cracklib-2.9.0-11.el7.i686.rpm
Downloading cracklib-dicts-2.9.0-11.el7.x86_64.rpm
Downloading cryptsetup-libs-1.6.7-1.el7.x86_64.rpm
Downloading curl-7.29.0-25.el7.centos.x86_64.rpm
Downloading cyrus-sasl-lib-2.1.26-20.el7_2.x86_64.rpm
Downloading cyrus-sasl-lib-2.1.26-20.el7_2.i686.rpm
Downloading dbus-1.6.12-14.el7_2.x86_64.rpm
Downloading dbus-libs-1.6.12-14.el7_2.x86_64.rpm
Downloading device-mapper-1.02.107-5.el7_2.5.x86_64.rpm
Downloading device-mapper-libs-1.02.107-5.el7_2.5.i686.rpm
Downloading device-mapper-libs-1.02.107-5.el7_2.5.x86_64.rpm
Downloading diffutils-3.3-4.el7.i686.rpm
Downloading diffutils-3.3-4.el7.x86_64.rpm
Downloading dracut-033-360.el7_2.1.x86_64.rpm
Downloading elfutils-libelf-0.163-3.el7.x86_64.rpm
Downloading elfutils-libelf-0.163-3.el7.i686.rpm
Downloading elfutils-libs-0.163-3.el7.x86_64.rpm
Downloading elfutils-libs-0.163-3.el7.i686.rpm
Downloading expat-2.1.0-8.el7.x86_64.rpm
Downloading filesystem-3.2-20.el7.x86_64.rpm
Downloading findutils-4.5.11-5.el7.x86_64.rpm
Downloading gawk-4.0.2-4.el7.x86_64.rpm
Downloading glib2-2.42.2-5.el7.i686.rpm
Downloading glib2-2.42.2-5.el7.x86_64.rpm
Downloading glibc-2.17-106.el7_2.8.i686.rpm
Downloading glibc-2.17-106.el7_2.8.x86_64.rpm
Downloading glibc-common-2.17-106.el7_2.8.x86_64.rpm
Downloading gmp-6.0.0-12.el7_1.i686.rpm
Downloading gmp-6.0.0-12.el7_1.x86_64.rpm
Downloading grep-2.20-2.el7.x86_64.rpm
Downloading gzip-1.5-8.el7.x86_64.rpm
Downloading hardlink-1.0-19.el7.x86_64.rpm
Downloading httpd-2.4.6-40.el7.centos.4.x86_64.rpm
Downloading httpd-tools-2.4.6-40.el7.centos.4.x86_64.rpm
Downloading info-5.1-4.el7.x86_64.rpm
Downloading keyutils-libs-1.5.8-3.el7.i686.rpm
Downloading keyutils-libs-1.5.8-3.el7.x86_64.rpm
Downloading kmod-20-5.el7.x86_64.rpm
Downloading kmod-libs-20-5.el7.x86_64.rpm
Downloading kpartx-0.4.9-85.el7_2.5.x86_64.rpm
Downloading krb5-libs-1.13.2-12.el7_2.i686.rpm
Downloading krb5-libs-1.13.2-12.el7_2.x86_64.rpm
Downloading libacl-2.2.51-12.el7.x86_64.rpm
Downloading libacl-2.2.51-12.el7.i686.rpm
Downloading libattr-2.4.46-12.el7.i686.rpm
Downloading libattr-2.4.46-12.el7.x86_64.rpm
Downloading libblkid-2.23.2-26.el7_2.3.i686.rpm
Downloading libblkid-2.23.2-26.el7_2.3.x86_64.rpm
Downloading libcap-2.22-8.el7.x86_64.rpm
Downloading libcap-2.22-8.el7.i686.rpm
Downloading libcap-ng-0.7.5-4.el7.i686.rpm
Downloading libcap-ng-0.7.5-4.el7.x86_64.rpm
Downloading libcom_err-1.42.9-7.el7.x86_64.rpm
Downloading libcom_err-1.42.9-7.el7.i686.rpm
Downloading libcurl-7.29.0-25.el7.centos.i686.rpm
Downloading libcurl-7.29.0-25.el7.centos.x86_64.rpm
Downloading libdb-5.3.21-19.el7.i686.rpm
Downloading libdb-5.3.21-19.el7.x86_64.rpm
Downloading libdb-utils-5.3.21-19.el7.x86_64.rpm
Downloading libffi-3.0.13-16.el7.i686.rpm
Downloading libffi-3.0.13-16.el7.x86_64.rpm
Downloading libgcc-4.8.5-4.el7.x86_64.rpm
Downloading libgcc-4.8.5-4.el7.i686.rpm
Downloading libgcrypt-1.5.3-12.el7_1.1.x86_64.rpm
Downloading libgcrypt-1.5.3-12.el7_1.1.i686.rpm
Downloading libgpg-error-1.12-3.el7.i686.rpm
Downloading libgpg-error-1.12-3.el7.x86_64.rpm
Downloading libidn-1.28-4.el7.i686.rpm
Downloading libidn-1.28-4.el7.x86_64.rpm
Downloading libmount-2.23.2-26.el7_2.3.i686.rpm
Downloading libmount-2.23.2-26.el7_2.3.x86_64.rpm
Downloading libpwquality-1.2.3-4.el7.i686.rpm
Downloading libpwquality-1.2.3-4.el7.x86_64.rpm
Downloading libselinux-2.2.2-6.el7.x86_64.rpm
Downloading libselinux-2.2.2-6.el7.i686.rpm
Downloading libsemanage-2.1.10-18.el7.x86_64.rpm
Downloading libsepol-2.1.9-3.el7.i686.rpm
Downloading libsepol-2.1.9-3.el7.x86_64.rpm
Downloading libssh2-1.4.3-10.el7_2.1.x86_64.rpm
Downloading libssh2-1.4.3-10.el7_2.1.i686.rpm
Downloading libstdc++-4.8.5-4.el7.i686.rpm
Downloading libstdc++-4.8.5-4.el7.x86_64.rpm
Downloading libtasn1-3.8-2.el7.x86_64.rpm
Downloading libuser-0.60-7.el7_1.i686.rpm
Downloading libuser-0.60-7.el7_1.x86_64.rpm
Downloading libutempter-1.1.6-4.el7.x86_64.rpm
Downloading libutempter-1.1.6-4.el7.i686.rpm
Downloading libuuid-2.23.2-26.el7_2.3.x86_64.rpm
Downloading libuuid-2.23.2-26.el7_2.3.i686.rpm
Downloading libverto-0.2.5-4.el7.i686.rpm
Downloading libverto-0.2.5-4.el7.x86_64.rpm
Downloading libxml2-2.9.1-6.el7_2.3.x86_64.rpm
Downloading lua-5.1.4-14.el7.x86_64.rpm
Downloading mailcap-2.1.41-2.el7.noarch.rpm
Downloading ncurses-5.9-13.20130511.el7.x86_64.rpm
Downloading ncurses-base-5.9-13.20130511.el7.noarch.rpm
Downloading ncurses-libs-5.9-13.20130511.el7.x86_64.rpm
Downloading ncurses-libs-5.9-13.20130511.el7.i686.rpm
Downloading nspr-4.11.0-1.el7_2.x86_64.rpm
Downloading nspr-4.11.0-1.el7_2.i686.rpm
Downloading nss-3.21.0-9.el7_2.x86_64.rpm
Downloading nss-3.21.0-9.el7_2.i686.rpm
Downloading nss-softokn-3.16.2.3-14.2.el7_2.x86_64.rpm
Downloading nss-softokn-3.16.2.3-14.2.el7_2.i686.rpm
Downloading nss-softokn-freebl-3.16.2.3-14.2.el7_2.i686.rpm
Downloading nss-softokn-freebl-3.16.2.3-14.2.el7_2.x86_64.rpm
Downloading nss-sysinit-3.21.0-9.el7_2.x86_64.rpm
Downloading nss-tools-3.21.0-9.el7_2.x86_64.rpm
Downloading nss-util-3.21.0-2.2.el7_2.i686.rpm
Downloading nss-util-3.21.0-2.2.el7_2.x86_64.rpm
Downloading openldap-2.4.40-9.el7_2.i686.rpm
Downloading openldap-2.4.40-9.el7_2.x86_64.rpm
Downloading openssl-libs-1.0.1e-51.el7_2.5.x86_64.rpm
Downloading openssl-libs-1.0.1e-51.el7_2.5.i686.rpm
Downloading p11-kit-0.20.7-3.el7.i686.rpm
Downloading p11-kit-0.20.7-3.el7.x86_64.rpm
Downloading p11-kit-trust-0.20.7-3.el7.x86_64.rpm
Downloading pam-1.1.8-12.el7_1.1.x86_64.rpm
Downloading pam-1.1.8-12.el7_1.1.i686.rpm
Downloading pcre-8.32-15.el7_2.1.i686.rpm
Downloading pcre-8.32-15.el7_2.1.x86_64.rpm
Downloading pkgconfig-0.27.1-4.el7.x86_64.rpm
Downloading pkgconfig-0.27.1-4.el7.i686.rpm
Downloading popt-1.13-16.el7.i686.rpm
Downloading popt-1.13-16.el7.x86_64.rpm
Downloading procps-ng-3.3.10-5.el7_2.x86_64.rpm
Downloading procps-ng-3.3.10-5.el7_2.i686.rpm
Downloading qrencode-libs-3.4.1-3.el7.x86_64.rpm
Downloading readline-6.2-9.el7.i686.rpm
Downloading readline-6.2-9.el7.x86_64.rpm
Downloading rpm-4.11.3-17.el7.x86_64.rpm
Downloading rpm-libs-4.11.3-17.el7.x86_64.rpm
Downloading sed-4.2.2-5.el7.x86_64.rpm
Downloading setup-2.8.71-6.el7.noarch.rpm
Downloading shadow-utils-4.1.5.1-18.el7.x86_64.rpm
Downloading shared-mime-info-1.1-9.el7.x86_64.rpm
Downloading sqlite-3.7.17-8.el7.i686.rpm
Downloading sqlite-3.7.17-8.el7.x86_64.rpm
Downloading systemd-219-19.el7_2.12.x86_64.rpm
Downloading systemd-libs-219-19.el7_2.12.x86_64.rpm
Downloading systemd-libs-219-19.el7_2.12.i686.rpm
Downloading tzdata-2016f-1.el7.noarch.rpm
Downloading ustr-1.0.4-16.el7.x86_64.rpm
Downloading util-linux-2.23.2-26.el7_2.3.x86_64.rpm
Downloading util-linux-2.23.2-26.el7_2.3.i686.rpm
Downloading xz-5.1.2-12alpha.el7.x86_64.rpm
Downloading xz-libs-5.1.2-12alpha.el7.x86_64.rpm
Downloading xz-libs-5.1.2-12alpha.el7.i686.rpm
Downloading zlib-1.2.7-15.el7.x86_64.rpm
Downloading zlib-1.2.7-15.el7.i686.rpm

18.ローカルにあるrpmファイルからインストール・アップデートを行う

前にこちらにも書いたのだが、ローカルにあるrpmファイルをインストールする際、rpmコマンドからだと依存関係に気を付けて順番通りにインストールするのは難しい。
yumのlocalinstallなら、ローカルのrpmファイルをふつうにインストールすることができる(ただし、すべてのパッケージを引数として指定する必要はある。)。

yum localinstall --nogpgcheck rpmパッケージ1 rpmパッケージ2 ...

また、ローカルのrpmファイルからパッケージのアップデートをする場合は、「localupdate」を用いる。

yum localupdate --nogpgcheck rpmパッケージ ...

19.パッケージに変更を加える前にファイルシステムのスナップショットを取得する

ファイルシステムがLVMかBtrfsならば、「yum-plugin-fs-snapshot」パッケージをインストールすることで、yumコマンドが何か変更を加える前に自動的にスナップショットを取得させるようにできる。
まず、以下のコマンドで「yum-plugin-fs-snapshot」をインストール。

yum install yum-plugin-fs-snapshot

次に、設定ファイルを編集して機能を有効にする。

sed -i '/[lvm]/,$s/^enabled = 0/enabled = 1/g;/#lvcreate_size_args/s/#//g' /etc/yum/pluginconf.d/fs-snapshot.conf

あとは、yumで変更処理を行うだけで勝手にスナップショットを取得してくれるようになる。
VGの空き領域がないとエラーになるので、なるべく余裕を持った容量を用意しておこう。

[root@BS-PUB-CENT7-01 test]# yum install httpd
読み込んだプラグイン:fastestmirror, fs-snapshot
Loading mirror speeds from cached hostfile
 * base: ftp.riken.jp
 * epel: ftp.riken.jp
 * extras: ftp.riken.jp
 * updates: ftp.riken.jp
依存性の解決をしています
--> トランザクションの確認を実行しています。
---> パッケージ httpd.x86_64 0:2.4.6-40.el7.centos.4 を インストール
--> 依存性の処理をしています: httpd-tools = 2.4.6-40.el7.centos.4 のパッケージ: httpd-2.4.6-40.el7.centos.4.x86_64
--> 依存性の処理をしています: libaprutil-1.so.0()(64bit) のパッケージ: httpd-2.4.6-40.el7.centos.4.x86_64
--> 依存性の処理をしています: libapr-1.so.0()(64bit) のパッケージ: httpd-2.4.6-40.el7.centos.4.x86_64
--> トランザクションの確認を実行しています。
---> パッケージ apr.x86_64 0:1.4.8-3.el7 を インストール
---> パッケージ apr-util.x86_64 0:1.5.2-6.el7 を インストール
---> パッケージ httpd-tools.x86_64 0:2.4.6-40.el7.centos.4 を インストール
--> 依存性解決を終了しました。

依存性を解決しました

===============================================================================================
 Package              アーキテクチャー
                                      バージョン                        リポジトリー      容量
===============================================================================================
インストール中:
 httpd                x86_64          2.4.6-40.el7.centos.4             updates          2.7 M
依存性関連でのインストールをします:
 apr                  x86_64          1.4.8-3.el7                       base             103 k
 apr-util             x86_64          1.5.2-6.el7                       base              92 k
 httpd-tools          x86_64          2.4.6-40.el7.centos.4             updates           83 k

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

合計容量: 3.0 M
インストール容量: 9.9 M
Is this ok [y/d/N]: y
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
<span style="color: #ff0000;">fs-snapshot: snapshotting / (/dev/centos/root): root_yum_20160910105209
</span>  インストール中          : apr-1.4.8-3.el7.x86_64                                         1/4
  インストール中          : apr-util-1.5.2-6.el7.x86_64                                    2/4
  インストール中          : httpd-tools-2.4.6-40.el7.centos.4.x86_64                       3/4
  インストール中          : httpd-2.4.6-40.el7.centos.4.x86_64                             4/4
  検証中                  : httpd-tools-2.4.6-40.el7.centos.4.x86_64                       1/4
  検証中                  : apr-util-1.5.2-6.el7.x86_64                                    2/4
  検証中                  : httpd-2.4.6-40.el7.centos.4.x86_64                             3/4
  検証中                  : apr-1.4.8-3.el7.x86_64                                         4/4

インストール:
  httpd.x86_64 0:2.4.6-40.el7.centos.4

依存性関連をインストールしました:
  apr.x86_64 0:1.4.8-3.el7                             apr-util.x86_64 0:1.5.2-6.el7
  httpd-tools.x86_64 0:2.4.6-40.el7.centos.4

完了しました!
[root@BS-PUB-CENT7-01 test]# yum fssnap
読み込んだプラグイン:fastestmirror, fs-snapshot
Have 1 snapshots, using 4.6   space, from 1 origins.
fssnap summary done
[root@BS-PUB-CENT7-01 test]# yum fssnap list
読み込んだプラグイン:fastestmirror, fs-snapshot
List of 1 snapshosts:
Snapshot                         容量   Used   Free Origin Tags
<span style="color: #ff0000;">centos/root_yum_20160910105209   44 M   4.7%    0     root yum_20160910105209
</span>fssnap list done

20.パッケージの脆弱性情報を取得する(2017/05/24 追記)

yumでセキュリティアップデートができる状態であれば、以下のコマンドを実行することでアップデートパッケージの脆弱性情報を取得できる。

yum list-sec
yum updateinfo list sec
[root@test-cent ~]# yum list-sec
読み込んだプラグイン:fastestmirror
CESA_2015__2172 Important/Sec. glibc-2.17-106.el7_2.1.x86_64
CESA_2016__0176 Critical/Sec.  glibc-2.17-106.el7_2.4.x86_64
CESA_2015__2172 Important/Sec. glibc-common-2.17-106.el7_2.1.x86_64
CESA_2016__0176 Critical/Sec.  glibc-common-2.17-106.el7_2.4.x86_64
CESA_2015__2552 Important/Sec. kernel-3.10.0-327.3.1.el7.x86_64
CESA_2016__0064 Important/Sec. kernel-3.10.0-327.4.5.el7.x86_64
CESA_2016__0185 Important/Sec. kernel-3.10.0-327.10.1.el7.x86_64
CESA_2016__1033 Important/Sec. kernel-3.10.0-327.18.2.el7.x86_64
CESA_2016__1277 Important/Sec. kernel-3.10.0-327.22.2.el7.x86_64
CESA_2016__1539 Important/Sec. kernel-3.10.0-327.28.2.el7.x86_64
CESA_2016__1633 Important/Sec. kernel-3.10.0-327.28.3.el7.x86_64
CESA_2016__1847 Important/Sec. kernel-3.10.0-327.36.1.el7.x86_64
CESA_2016__2047 Important/Sec. kernel-3.10.0-327.36.2.el7.x86_64
CESA_2016__2098 Important/Sec. kernel-3.10.0-327.36.3.el7.x86_64