CentOS 7 でサーバー構築（パッケージ管理編）

[MyContent1]:https://qiita.com/sigenyan/items/7aeceb8338bbecd87bb5
[MyContent2]:https://qiita.com/sigenyan/items/4b86f694cc3c6171d0d0
[MyContent3]:https://qiita.com/sigenyan/items/1e52b99fca0320951159
[MyContent4]:https://qiita.com/sigenyan/items/f975ae49941c64af4173

[OnamaeVPS]:https://www.onamae.com/server/vps/
[CentOS]:https://www.centos.org
[CentOS-DL]:https://www.centos.org/download
[WinSCP]:https://winscp.net


<font color="DeepPink">(2020年10月改変)
本投稿は [CentOS 7.8 (2003)][CentOS] で更新しました。
</font>

##はじめに

[CentOS 7][CentOS] を [お名前.com VPS][OnamaeVPS] にインストールしたときの手順をご紹介します。
VPSプランは２ギガメモリプランです。
１２ヶ月まとめ払いならば１ギガメモリプランとさほど金額差はありませんのでおすすめです。
記事では [CentOS 7][CentOS] インストールから各種さまざまなサーバーアプリケーションのセットアップまでを複数に渡ってご紹介したいと思います。

+ [CentOS 7 でサーバー構築（インストール編）][MyContent1]
+ [CentOS 7 でサーバー構築（論理ボリュームマウント編）][MyContent2]
+ [CentOS 7 でサーバー構築（ユーザー作成～SSH開通編）][MyContent3]
+ CentOS 7 でサーバー構築（パッケージ管理編）

今回はパッケージマネージャー `yum` の利用方法について紹介します。
前回のネットワーク開通時にインストール済コンポーネントのアップデートを行いましたが、ここではもう少し掘り下げていきたいと思います。

##`yum update` でサーバーコンポーネントを最新化

`yum` はパッケージを管理するためのコマンドです。アプリケーションをインストールするときにライブラリの依存関係なども解決してインストールをしてくれるので、とても便利です。
`yum` はデフォルトの状態で使うと、OSやカーネルもアップデートされます。サーバー運用上、それらを抑止したいケースがあると思いますので、下記のとおり設定を変更します。

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

```config:/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=5
bugtracker_url=http://bugs.centos.org/set_project.php?project_id=23&ref=http://bugs.centos.org/bug_report_page.php?category=yum
distroverpkg=centos-release


#  This is the default, if you make this bigger yum won't see if the metadata
# is newer on the remote and so you'll "gain" the bandwidth of not having to
# download the new metadata and "pay" for it by yum not having correct
# information.
#  It is esp. important, to have correct metadata, for distributions like
# Fedora which don't keep old packages around. If you don't like this checking
# interupting your command line usage, it's much better to have something
# manually check the metadata once an hour (yum-updatesd will do this).
# metadata_expire=90m

# PUT YOUR REPOS HERE OR IN separate files named file.repo
# in /etc/yum.repos.d
```

下記のとおり、`exclude=kernel* centos*` の行を追加します。

```config:/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=5
bugtracker_url=http://bugs.centos.org/set_project.php?project_id=23&ref=http://bugs.centos.org/bug_report_page.php?category=yum
distroverpkg=centos-release
exclude=kernel* centos*

#  This is the default, if you make this bigger yum won't see if the metadata
# is newer on the remote and so you'll "gain" the bandwidth of not having to
# download the new metadata and "pay" for it by yum not having correct
# information.
#  It is esp. important, to have correct metadata, for distributions like
# Fedora which don't keep old packages around. If you don't like this checking
# interupting your command line usage, it's much better to have something
# manually check the metadata once an hour (yum-updatesd will do this).
# metadata_expire=90m

# PUT YOUR REPOS HERE OR IN separate files named file.repo
# in /etc/yum.repos.d
```

`exclude` は除外対象を記述するための定義です。
`exclude=kernel* centos*` としていますので、カーネルとOSのバージョンアップを抑止しています。
ただ、ここまでガチガチにしてしまうと、依存コンポーネントのアップデートに悪影響を与えてしまう場合がありますので、よくよく検討する必要があるかと思います。
`exclude=centos*` とすることでOSのバージョンアップは抑止できますので、これぐらいでとどめて置くのが良いように思います。
ちなみに私は検証目的で構築しているので、特に `exclude` は設定していません。

`yum update` は定期的に実施して、サーバー内のコンポーネントを最新化しておくことが良いと思います。
下記は `yum update` 実施結果ですが、すでに前回アップデート済なので今回はアップデート対象無しでした。

```
[root@localhost ~]# yum update
読み込んだプラグイン:fastestmirror
Determining fastest mirrors
 * base: ty1.mirror.newmediaexpress.com
 * extras: ty1.mirror.newmediaexpress.com
 * updates: ty1.mirror.newmediaexpress.com
base                                                                                                       | 3.6 kB  00:00:00
extras                                                                                                     | 2.9 kB  00:00:00
updates                                                                                                    | 2.9 kB  00:00:00
updates/7/x86_64/primary_db                                                                                | 4.5 MB  00:00:00
No packages marked for update
[root@localhost ~]#
```

`yum` コマンドで良く使いそうなオプションを書き出してみました。

##`yum` コマンドで良く使うオプション

| No. | コマンド | 概要 |
|--:|---|---|
|  1 |  yum install *package1* *\[package2\]* *\[...\]* | パッケージをインストールします。 |
|  2 |  yum remove *package1* *\[package2\]* *\[...\]* |  パッケージを削除します。 |
|  3 |  yum update *\[package1\]* *\[package2\]* *\[...\]* | パッケージを更新します。  |
|  4 |  yum list installed *\[package1\]* *\[package2\]* *\[...\]* |  インストール済みのパッケージを表示します。 |
|  5 |  yum list updates *\[package1\]* *\[package2\]* *\[...\]* |  インストール済みで更新があるパッケージを表示します。 |
|  6 |  yum list available *\[package1\]* *\[package2\]* *\[...\]* | 利用可能なパッケージを表示します。  |
|  7 |  yum info *\[package1\]* *\[package2\]* *\[...\]* | パッケージの詳細情報を表示します。  |
|  8 |  yum info installed *\[package1\]* *\[package2\]* *\[...\]* | インストール済みパッケージの詳細情報を表示します。  |
|  9 |  yum info updates *\[package1\]* *\[package2\]* *\[...\]* | インストール済みで更新があるパッケージの詳細情報を表示します  |
|  10 |  yum info available *\[package1\]* *\[package2\]* *\[...\]* | 利用可能なパッケージの詳細情報を表示します。  |
|  11|  yum search *\[keyword1\]* *\[keyword2\]* *\[...\]* | パッケージ情報を検索します。  |


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

```bash:コマンドライン
yum install package1 [package2] [...]
```

パッケージをインストールするには `yum install` コマンドを利用します。最低ひとつ以上のパッケージ名を指定する必要があります。パッケージ名を空白区切りで複数並べることで一度に複数パッケージをインストールすることが可能です。

```
[root@localhost ~]# yum install java-1.8.0-openjdk-devel
読み込んだプラグイン:fastestmirror
Loading mirror speeds from cached hostfile
 * base: ftp.riken.jp
 * extras: ftp.riken.jp
 * updates: ftp.riken.jp
依存性の解決をしています
--> トランザクションの確認を実行しています。
---> パッケージ java-1.8.0-openjdk-devel.x86_64 1:1.8.0.161-0.b14.el7_4 を インストール
--> 依存性の処理をしています: java-1.8.0-openjdk(x86-64) = 1:1.8.0.161-0.b14.el7_4 のパッケージ: 1:java-1.8.0-openjdk-devel-1.8.0.161-0.b14.el7_4.x86_64
--> 依存性の処理をしています: libawt_xawt.so(SUNWprivate_1.1)(64bit) のパッケージ: 1:java-1.8.0-openjdk-devel-1.8.0.161-0.b14.el7_4.x86_64
--> 依存性の処理をしています: libjvm.so()(64bit) のパッケージ: 1:java-1.8.0-openjdk-devel-1.8.0.161-0.b14.el7_4.x86_64

... 省略

--> 依存性の処理をしています: libXfont.so.1()(64bit) のパッケージ: 1:xorg-x11-font-utils-7.5-20.el7.x86_64
--> トランザクションの確認を実行しています。
---> パッケージ libXfont.x86_64 0:1.5.2-1.el7 を インストール
---> パッケージ libfontenc.x86_64 0:1.1.3-3.el7 を インストール
---> パッケージ python-lxml.x86_64 0:3.2.1-4.el7 を インストール
--> 依存性解決を終了しました。

依存性を解決しました

================================================================================================================
 Package                              アーキテクチャー
                                                      バージョン                         リポジトリー      容量
================================================================================================================
インストール中:
 java-1.8.0-openjdk-devel             x86_64          1:1.8.0.161-0.b14.el7_4            updates          9.8 M
依存性関連でのインストールをします:
 copy-jdk-configs                     noarch          2.2-5.el7_4                        updates           19 k
 fontconfig                           x86_64          2.10.95-11.el7                     base             229 k
 fontpackages-filesystem              noarch          1.44-8.el7                         base             9.9 k
 giflib                               x86_64          4.1.6-9.el7                        base              40 k
 java-1.8.0-openjdk                   x86_64          1:1.8.0.161-0.b14.el7_4            updates          243 k
 java-1.8.0-openjdk-headless          x86_64          1:1.8.0.161-0.b14.el7_4            updates           32 M

... 省略

 xorg-x11-font-utils                  x86_64          1:7.5-20.el7                       base              87 k
 xorg-x11-fonts-Type1                 noarch          7.5-9.el7                          base             521 k

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

総ダウンロード容量: 47 M
インストール容量: 157 M
Is this ok [y/d/N]: y
Downloading packages:
(1/32): fontpackages-filesystem-1.44-8.el7.noarch.rpm                                    | 9.9 kB  00:00:00
(2/32): fontconfig-2.10.95-11.el7.x86_64.rpm                                             | 229 kB  00:00:00
(3/32): copy-jdk-configs-2.2-5.el7_4.noarch.rpm                                          |  19 kB  00:00:00
(4/32): giflib-4.1.6-9.el7.x86_64.rpm                                                    |  40 kB  00:00:00
(5/32): java-1.8.0-openjdk-1.8.0.161-0.b14.el7_4.x86_64.rpm                              | 243 kB  00:00:00

... 省略

  python-javapackages.noarch 0:3.4.1-11.el7          python-lxml.x86_64 0:3.2.1-4.el7
  stix-fonts.noarch 0:1.1.0-5.el7                    ttmkfdir.x86_64 0:3.0.9-42.el7
  tzdata-java.noarch 0:2018d-1.el7                   xorg-x11-font-utils.x86_64 1:7.5-20.el7
  xorg-x11-fonts-Type1.noarch 0:7.5-9.el7

完了しました!
[root@localhost ~]#
```

インストールするパッケージを検索し、 `Is this ok [y/d/N]:` と確認が表示されるので `y` を入力して Enter を押下すればインストールが始まります。あとは完了を待つだけです。
`y` を入力するのは面倒だという方は、以下のように `-y` オプションを付け加えてください。

```
[root@localhost ~]# yum -y install java-1.8.0-openjdk-devel
```

`Is this ok [y/d/N]:` を途中で問われることなく `y` が選択されたという前提でインストールが始まります。


####2. パッケージを削除

```bash:コマンドライン
yum remove package1 [package2] [...]
```

パッケージをアンインストールするには `yum remove` コマンドを利用します。最低ひとつ以上のパッケージ名を指定する必要があります。パッケージ名を空白区切りで複数並べることで一度に複数パッケージをアンインストールすることが可能です。

```
[root@localhost ~]# yum remove java-1.8.0-openjdk-devel
読み込んだプラグイン:fastestmirror
依存性の解決をしています
--> トランザクションの確認を実行しています。
---> パッケージ java-1.8.0-openjdk-devel.x86_64 1:1.8.0.161-0.b14.el7_4 を 削除
--> 依存性解決を終了しました。

依存性を解決しました

================================================================================================================
 Package                            アーキテクチャー バージョン                        リポジトリー        容量
================================================================================================================
削除中:
 java-1.8.0-openjdk-devel           x86_64           1:1.8.0.161-0.b14.el7_4           @updates            40 M

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

インストール容量: 40 M
上記の処理を行います。よろしいでしょうか？ [y/N]y
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  削除中                  : 1:java-1.8.0-openjdk-devel-1.8.0.161-0.b14.el7_4.x86_64                         1/1
  検証中                  : 1:java-1.8.0-openjdk-devel-1.8.0.161-0.b14.el7_4.x86_64                         1/1

削除しました:
  java-1.8.0-openjdk-devel.x86_64 1:1.8.0.161-0.b14.el7_4

完了しました!
[root@localhost ~]#
```

アンインストールするパッケージを検索し、 `Is this ok [y/d/N]:` と確認が表示されるので `y` を入力して Enter を押下すればアンインストールが始まります。あとは完了を待つだけです。
`y` を入力するのは面倒だという方は、以下のように `-y` オプションを付け加えてください。

```
[root@localhost ~]# yum -y remove java-1.8.0-openjdk-devel
```

`Is this ok [y/d/N]:` を途中で問われることなく `y` が選択されたという前提でアンインストールが始まります。

####3. パッケージを更新

```bash:コマンドライン
yum update [package1] [package2] [...]
```

パッケージを更新するには `yum update` コマンドを利用します。パッケージ名を指定せずに実行するとインストール済みの全パッケージのうち、更新されているパッケージをすべて更新します。
パッケージ名を指定するとそのパッケージのみ更新されます。パッケージ名は空白区切りで複数並べることが可能です。

```
[root@localhost ~]# yum update
読み込んだプラグイン:fastestmirror
Loading mirror speeds from cached hostfile
 * base: ftp.riken.jp
 * extras: ftp.riken.jp
 * updates: ftp.riken.jp
依存性の解決をしています
--> トランザクションの確認を実行しています。
---> パッケージ dhclient.x86_64 12:4.2.5-58.el7.centos.1 を 更新
---> パッケージ dhclient.x86_64 12:4.2.5-58.el7.centos.3 を アップデート
---> パッケージ dhcp-common.x86_64 12:4.2.5-58.el7.centos.1 を 更新
---> パッケージ dhcp-common.x86_64 12:4.2.5-58.el7.centos.3 を アップデート
---> パッケージ dhcp-libs.x86_64 12:4.2.5-58.el7.centos.1 を 更新
---> パッケージ dhcp-libs.x86_64 12:4.2.5-58.el7.centos.3 を アップデート
---> パッケージ tzdata.noarch 0:2018c-1.el7 を 更新
---> パッケージ tzdata.noarch 0:2018d-1.el7 を アップデート
--> 依存性解決を終了しました。

依存性を解決しました

================================================================================================================
 Package                  アーキテクチャー    バージョン                             リポジトリー          容量
================================================================================================================
更新します:
 dhclient                 x86_64              12:4.2.5-58.el7.centos.3               updates              282 k
 dhcp-common              x86_64              12:4.2.5-58.el7.centos.3               updates              174 k
 dhcp-libs                x86_64              12:4.2.5-58.el7.centos.3               updates              130 k
 tzdata                   noarch              2018d-1.el7                            updates              481 k

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

総ダウンロード容量: 1.0 M
Is this ok [y/d/N]: y
Downloading packages:
Delta RPMs disabled because /usr/bin/applydeltarpm not installed.
(1/4): dhcp-common-4.2.5-58.el7.centos.3.x86_64.rpm                                      | 174 kB  00:00:00
(2/4): dhcp-libs-4.2.5-58.el7.centos.3.x86_64.rpm                                        | 130 kB  00:00:00
(3/4): dhclient-4.2.5-58.el7.centos.3.x86_64.rpm                                         | 282 kB  00:00:00
(4/4): tzdata-2018d-1.el7.noarch.rpm                                                     | 481 kB  00:00:00
----------------------------------------------------------------------------------------------------------------
合計                                                                            2.8 MB/s | 1.0 MB  00:00:00
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  更新します              : 12:dhcp-libs-4.2.5-58.el7.centos.3.x86_64                                       1/8
  更新します              : 12:dhcp-common-4.2.5-58.el7.centos.3.x86_64                                     2/8
  更新します              : 12:dhclient-4.2.5-58.el7.centos.3.x86_64                                        3/8
  更新します              : tzdata-2018d-1.el7.noarch                                                       4/8
  整理中                  : 12:dhclient-4.2.5-58.el7.centos.1.x86_64                                        5/8
  整理中                  : 12:dhcp-common-4.2.5-58.el7.centos.1.x86_64                                     6/8
  整理中                  : 12:dhcp-libs-4.2.5-58.el7.centos.1.x86_64                                       7/8
  整理中                  : tzdata-2018c-1.el7.noarch                                                       8/8
  検証中                  : 12:dhcp-common-4.2.5-58.el7.centos.3.x86_64                                     1/8
  検証中                  : 12:dhclient-4.2.5-58.el7.centos.3.x86_64                                        2/8
  検証中                  : tzdata-2018d-1.el7.noarch                                                       3/8
  検証中                  : 12:dhcp-libs-4.2.5-58.el7.centos.3.x86_64                                       4/8
  検証中                  : 12:dhcp-common-4.2.5-58.el7.centos.1.x86_64                                     5/8
  検証中                  : 12:dhcp-libs-4.2.5-58.el7.centos.1.x86_64                                       6/8
  検証中                  : 12:dhclient-4.2.5-58.el7.centos.1.x86_64                                        7/8
  検証中                  : tzdata-2018c-1.el7.noarch                                                       8/8

更新:
  dhclient.x86_64 12:4.2.5-58.el7.centos.3              dhcp-common.x86_64 12:4.2.5-58.el7.centos.3
  dhcp-libs.x86_64 12:4.2.5-58.el7.centos.3             tzdata.noarch 0:2018d-1.el7

完了しました!
[root@localhost ~]#
```

更新するパッケージを検索し、 `Is this ok [y/d/N]:` と確認が表示されるので `y` を入力して Enter を押下すれば更新が始まります。あとは完了を待つだけです。
`y` を入力するのは面倒だという方は、以下のように `-y` オプションを付け加えてください。

```
[root@localhost ~]# yum -y update
```

`Is this ok [y/d/N]:` を途中で問われることなく `y` が選択されたという前提で更新が始まります。

####4. インストール済みのパッケージを表示

```bash:コマンドライン
yum list installed [package1] [package2] [...]
```

インストール済みのパッケージ一覧を表示するには、`yum list` コマンドの `installed` リストオプションを利用します。

```
[root@localhost ~]# yum list installed
（インストール済みのパッケージが一覧表示される。）
...
util-linux.x86_64                                       2.23.2-43.el7_4.2                                  @updates
vim-minimal.x86_64                                      2:7.4.160-2.el7                                    @anaconda
virt-what.x86_64                                        1.13-10.el7                                        @anaconda
which.x86_64                                            2.20-7.el7                                         @anaconda
wpa_supplicant.x86_64                                   1:2.6-5.el7_4.1                                    @updates
xfsprogs.x86_64                                         4.5.0-12.el7                                       @anaconda
xz.x86_64                                               5.2.2-1.el7                                        @anaconda
xz-libs.x86_64                                          5.2.2-1.el7                                        @anaconda
yum.noarch                                              3.4.3-154.el7.centos.1                             @updates
yum-metadata-parser.x86_64                              1.1.4-10.el7                                       @anaconda
yum-plugin-fastestmirror.noarch                         1.1.31-42.el7                                      @anaconda
zlib.x86_64                                             1.2.7-17.el7                                       @anaconda
[root@localhost ~]# 
```

`yum list installed` は結果一覧が多くでます。パッケージ名を指定することで結果を絞り込むことができます。
パッケージ名はワイルドカードで指定できますので、ある程度柔軟な検索が可能だと思います。
以下の例は `java` 関連のパッケージをワイルドカード指定で絞り込んでいます。

```
[root@localhost ~]# yum list installed java*
読み込んだプラグイン:fastestmirror
Determining fastest mirrors
 * base: ftp.riken.jp
 * extras: ftp.riken.jp
 * updates: ftp.riken.jp
インストール済みパッケージ
java-1.8.0-openjdk.x86_64                                1:1.8.0.161-0.b14.el7_4                        @updates
java-1.8.0-openjdk-headless.x86_64                       1:1.8.0.161-0.b14.el7_4                        @updates
javapackages-tools.noarch                                3.4.1-11.el7                                   @base
[root@localhost ~]#
```

また、`grep` コマンドにパイプして結果を絞り込むことも可能です。
以下の例は先ほどと同じく `java` 関連のパッケージを `grep` コマンドにパイプして絞り込んでいます。

```
[root@localhost ~]# yum list installed | grep java
java-1.8.0-openjdk.x86_64             1:1.8.0.161-0.b14.el7_4          @updates
java-1.8.0-openjdk-headless.x86_64    1:1.8.0.161-0.b14.el7_4          @updates
javapackages-tools.noarch             3.4.1-11.el7                     @base
python-javapackages.noarch            3.4.1-11.el7                     @base
tzdata-java.noarch                    2018d-1.el7                      @updates
[root@localhost ~]#
```

`grep` コマンドを併用した場合は `java` のキーワードがついたパッケージをすべて抽出しますので、ある程度の自由度が生まれます。
好みやそのときの目的によって使い分ければよいかと思います。


####5. インストール済みで更新があるパッケージを表示

```bash:コマンドライン
yum list updates [package1] [package2] [...]
```

インストール済みのパッケージで、アップデート可能な一覧を表示するには、`yum list` コマンドの `updates` リストオプションを利用します。

```
[root@localhost ~]# yum list updates
読み込んだプラグイン:fastestmirror
Loading mirror speeds from cached hostfile
 * base: ftp.iij.ad.jp
 * extras: ftp.iij.ad.jp
 * updates: ftp.iij.ad.jp
更新したパッケージ
dhclient.x86_64                                  12:4.2.5-58.el7.centos.3                                updates
dhcp-common.x86_64                               12:4.2.5-58.el7.centos.3                                updates
dhcp-libs.x86_64                                 12:4.2.5-58.el7.centos.3                                updates
tzdata.noarch                                    2018d-1.el7                                             updates[root@localhost ~]#
```

更新パッケージがある場合は上記のようにリストが表示されます。すべて最新である場合は表示されません。
'yum list updates' はこまめにパッケージを更新している場合ならば大量な表示となることはないかと思います。必要に応じてワイルドカード指定や grep' コマンドを利用して結果を絞り込みましょう。

####6. 利用可能なパッケージを表示

```bash:コマンドライン
yum list available [package1] [package2] [...]
```

利用可能なパッケージの一覧を表示するには、`yum list` コマンドの `available` リストオプションを利用します。

```
[root@localhost ~]# yum list available
（利用可能なパッケージが一覧表示される。）
...
yum-plugin-verify.noarch                                              1.1.31-42.el7                                      base
yum-plugin-versionlock.noarch                                         1.1.31-42.el7                                      base
yum-rhn-plugin.noarch                                                 2.0.1-9.el7                                        base
yum-updateonboot.noarch                                               1.1.31-42.el7                                      base
yum-utils.noarch                                                      1.1.31-42.el7                                      base
zenity.x86_64                                                         3.22.0-1.el7                                       base
zip.x86_64                                                            3.0-11.el7                                         base
zlib.i686                                                             1.2.7-17.el7                                       base
zlib-devel.i686                                                       1.2.7-17.el7                                       base
zlib-devel.x86_64                                                     1.2.7-17.el7                                       base
zlib-static.i686                                                      1.2.7-17.el7                                       base
zlib-static.x86_64                                                    1.2.7-17.el7                                       base
zsh.x86_64                                                            5.0.2-28.el7                                       base
zsh-html.x86_64                                                       5.0.2-28.el7                                       base
zziplib.i686                                                          0.13.62-5.el7                                      base
zziplib.x86_64                                                        0.13.62-5.el7                                      base
zziplib-devel.i686                                                    0.13.62-5.el7                                      base
zziplib-devel.x86_64                                                  0.13.62-5.el7                                      base
zziplib-utils.x86_64                                                  0.13.62-5.el7
[root@localhost ~]# 
```

`yum list available` も `yum list installed` 同様、結果一覧が多くでますので、ワイルドカード指定や `grep` コマンドを併用しましょう。
以下の例は利用可能な `openjdk` を確認しています。複数のバージョンが選択可能であることがわかります。

```
[root@localhost ~]# yum list available | grep openjdk
java-1.6.0-openjdk.x86_64                 1:1.6.0.41-1.13.13.1.el7_3     base
java-1.6.0-openjdk-demo.x86_64            1:1.6.0.41-1.13.13.1.el7_3     base
java-1.6.0-openjdk-devel.x86_64           1:1.6.0.41-1.13.13.1.el7_3     base
java-1.6.0-openjdk-javadoc.x86_64         1:1.6.0.41-1.13.13.1.el7_3     base
java-1.6.0-openjdk-src.x86_64             1:1.6.0.41-1.13.13.1.el7_3     base
java-1.7.0-openjdk.x86_64                 1:1.7.0.171-2.6.13.0.el7_4     updates
java-1.7.0-openjdk-accessibility.x86_64   1:1.7.0.171-2.6.13.0.el7_4     updates
java-1.7.0-openjdk-demo.x86_64            1:1.7.0.171-2.6.13.0.el7_4     updates
java-1.7.0-openjdk-devel.x86_64           1:1.7.0.171-2.6.13.0.el7_4     updates
...（中略）
java-1.8.0-openjdk-javadoc-debug.noarch   1:1.8.0.161-0.b14.el7_4        updates
java-1.8.0-openjdk-javadoc-zip.noarch     1:1.8.0.161-0.b14.el7_4        updates
java-1.8.0-openjdk-javadoc-zip-debug.noarch
java-1.8.0-openjdk-src.i686               1:1.8.0.161-0.b14.el7_4        updates
java-1.8.0-openjdk-src.x86_64             1:1.8.0.161-0.b14.el7_4        updates
java-1.8.0-openjdk-src-debug.i686         1:1.8.0.161-0.b14.el7_4        updates
java-1.8.0-openjdk-src-debug.x86_64       1:1.8.0.161-0.b14.el7_4        updates
[root@localhost ~]# 
```

####7. パッケージの詳細情報

```bash:コマンドライン
yum info [package1] [package2] [...]
```

利用可能なパッケージ情報を表示したい場合は `yum info` コマンドを利用します。
パッケージ名を指定した場合は、該当するパッケージ情報を表示します。パッケージ名を指定しない場合は、利用可能なパッケージ情報すべてを表示します。
以下の例は `java-1.8.0-openjdk-devel` の情報を表示しています。

```
[suzuki@localhost ~]$ yum info java-1.8.0-openjdk-devel
読み込んだプラグイン:fastestmirror
Determining fastest mirrors
 * base: ftp.iij.ad.jp
 * extras: ftp.iij.ad.jp
 * updates: ftp.iij.ad.jp
利用可能なパッケージ
名前                : java-1.8.0-openjdk-devel
アーキテクチャー    : i686
エポック            : 1
バージョン          : 1.8.0.161
リリース            : 0.b14.el7_4
容量                : 9.8 M
リポジトリー        : updates/7/x86_64
要約                : OpenJDK Development Environment
URL                 : http://openjdk.java.net/
ライセンス          : ASL 1.1 and ASL 2.0 and GPL+ and GPLv2 and GPLv2 with exceptions and LGPL+ and LGPLv2 and
                    : MPLv1.0 and MPLv1.1 and Public Domain and W3C
説明                : The OpenJDK development tools.

名前                : java-1.8.0-openjdk-devel
アーキテクチャー    : x86_64
エポック            : 1
バージョン          : 1.8.0.161
リリース            : 0.b14.el7_4
容量                : 9.8 M
リポジトリー        : updates/7/x86_64
要約                : OpenJDK Development Environment
URL                 : http://openjdk.java.net/
ライセンス          : ASL 1.1 and ASL 2.0 and GPL+ and GPLv2 and GPLv2 with exceptions and LGPL+ and LGPLv2 and
                    : MPLv1.0 and MPLv1.1 and Public Domain and W3C
説明                : The OpenJDK development tools.

[suzuki@localhost ~]
```

`yum info` の場合は結果の絞り込みに `grep` を利用してしまうと思った結果が得られないかと思います。パッケージ名を指定するか、ワイルドカードで絞り込みをしましょう。


####8. インストール済みパッケージの詳細情報を表示

```bash:コマンドライン
yum info installed [package1] [package2] [...]
```

`yum list` の詳細版です。使い方も基本的には同じですので、説明は省きます。


####9. インストール済みで更新があるパッケージの詳細情報

```bash:コマンドライン
yum info updates [package1] [package2] [...]
```

`yum list` の詳細版です。使い方も基本的には同じですので、説明は省きます。


####10. 利用可能なパッケージの詳細情報

```bash:コマンドライン
yum info available [package1] [package2] [...]
```

`yum list` の詳細版です。使い方も基本的には同じですので、説明は省きます。


####11. パッケージ情報を検索

```bash:コマンドライン
yum search [keyword1] [keyword2] [...]
```

パッケージを検索したい場合は、`yum search` コマンドを利用します。インストールしたいパッケージの正式名称や、バージョンを確認したい場合に便利です。
以下の例では、`httpd` に関連するパッケージを検索しています。

```
[root@localhost ~]# yum search httpd
読み込んだプラグイン:fastestmirror
Loading mirror speeds from cached hostfile
 * base: ftp.riken.jp
 * extras: ftp.riken.jp
 * updates: ftp.riken.jp
============================================== N/S matched: httpd ==============================================
keycloak-httpd-client-install.noarch : Tools to configure Apache HTTPD as Keycloak client
libmicrohttpd-devel.i686 : Development files for libmicrohttpd
libmicrohttpd-devel.x86_64 : Development files for libmicrohttpd
libmicrohttpd-doc.noarch : Documentation for libmicrohttpd
python2-keycloak-httpd-client-install.noarch : Tools to configure Apache HTTPD as Keycloak client
httpd.x86_64 : Apache HTTP Server
httpd-devel.x86_64 : Development interfaces for the Apache HTTP server
httpd-manual.noarch : Documentation for the Apache HTTP server
httpd-tools.x86_64 : Tools for use with the Apache HTTP Server
libmicrohttpd.i686 : Lightweight library for embedding a webserver in applications
libmicrohttpd.x86_64 : Lightweight library for embedding a webserver in applications
mod_auth_mellon.x86_64 : A SAML 2.0 authentication module for the Apache Httpd Server
mod_dav_svn.x86_64 : Apache httpd module for Subversion server

  Name and summary matches only, use "search all" for everything.
[root@localhost ~]#
```

##さいごに
今回はパッケージマネージャー `yum` を利用してパッケージのインストール方法などについて説明しました。
パッケージは比較的頻繁にアップデートされている印象です。まめに `yum list updates` と `yum update` で最新版に保つようにすると良いかと思います。