Show Table of Contents
第6章 Yum
Yum は Red Hat パッケージマネージャーです。Yum は、パッケージ情報に関するクエリ、リポジトリからのパッケージのフェッチ、パッケージのインストールとアンインストール、さらには利用可能な最新バージョンへのシステム全体の更新を行うことができます。Yum は、更新/インストール/削除を実行しているパッケージで依存関係の自動解決を行います。そのため、利用可能なすべての依存パッケージを自動的に決定/フェッチ/インストールすることができます。
Yum は、新しい追加のリポジトリまたは パッケージソース を使って設定することができ、機能を向上して拡張する多くのプラグインも提供します。また、Yum は RPM が実行できる多くの同じタスクを行うことができます。さらに、多くのコマンドラインオプションも似ています。Yum を使うことで、1 つのマシンまたはマシンのグループ上でのパッケージ管理を簡単かつシンプルに行うことができます。
重要
Yum は、GPG (Gnu Privacy Guard: 別名 GnuPG) 署名付きのパッケージの GPG 署名照合をすべてのパッケージリポジトリ (パッケージソース) または個々のリポジトリに有効にすることで、セキュアなパッケージ管理を実現します。署名照合が有効な場合、Yum はリポジトリに対して GPG 署名がない不正確なキーを持つパッケージのインストールを拒否します。これにより、ご使用のシステムにダウンロードしてインストールする RPM パッケージが Red Hat などの信頼されたソースからのものであり、移行中に変更されていないことが信用できます。Yum を使用して署名照合を有効にする方法については、「Yum と Yum リポジトリの設定」 を参照して下さい。また、GPG 署名付きの RPM パッケージ全般の使用及び検証方法に関しては 「パッケージの署名確認」 を参照して下さい。
Yum を使用すると、他のマシンへダウンロード/インストールするための RPM パッケージのリポジトリを簡単に設定することができます。
Yum を使用するとシステム管理タスクを最速で実行できることが多いため、習得する価値は十分にあります。また、Yum は PackageKit グラフィカルパッケージ管理ツールが実現できる以上の機能を提供します。PackageKit の使用に関する詳細は、7章PackageKit を参照して下さい。
注記
yum
を使用して、システムにパッケージをインストール/更新/削除するにはスーパーユーザー権限が必要です。本章のすべての例では、su
または sudo
コマンドを使用することでスーパーユーザー権限をすでに持っていると仮定しています。
6.1. パッケージの確認と更新
6.1.1. 更新の確認
使用しているシステムに利用可能な更新があるインストール済みのパッケージを確認するには、以下のコマンドを実行します:
yum
check-update
例:
~]# yum check-update
Loaded plugins: product-id, refresh-packagekit, subscription-manager
Updating Red Hat repositories.
INFO:rhsm-app.repolib:repos updated: 0
PackageKit.x86_64 0.5.8-2.el6 rhel
PackageKit-glib.x86_64 0.5.8-2.el6 rhel
PackageKit-yum.x86_64 0.5.8-2.el6 rhel
PackageKit-yum-plugin.x86_64 0.5.8-2.el6 rhel
glibc.x86_64 2.11.90-20.el6 rhel
glibc-common.x86_64 2.10.90-22 rhel
kernel.x86_64 2.6.31-14.el6 rhel
kernel-firmware.noarch 2.6.31-14.el6 rhel
rpm.x86_64 4.7.1-5.el6 rhel
rpm-libs.x86_64 4.7.1-5.el6 rhel
rpm-python.x86_64 4.7.1-5.el6 rhel
udev.x86_64 147-2.15.el6 rhel
yum.noarch 3.2.24-4.el6 rhel
上記の出力に表示されているパッケージには、利用可能な更新があります。一覧の最初のパッケージは、PackageKit と呼ばれるグラフィカルパッケージマネージャーです。その行の意味は以下のとおりです。
PackageKit
— パッケージの名前x86_64
— パッケージがビルドされた CPU アーキテクチャー0.5.8
— インストールされる更新済みパッケージのバージョンrhel
— 更新済みのパッケージがあるリポジトリ
また、上記の出力は、カーネル (kernel パッケージ)、Yum および RPM (yum および rpm のパッケージ)、さらにはそれらの依存関係 (kernel-firmware、rpm-libs、rpm-python のパッケージ) をすべて
yum
を使って更新できることも示しています。
6.1.2. パッケージの更新
1 回に更新するパッケージ数を 1 つ、複数、またはすべてのパッケージから選択することができます。更新するパッケージの依存関係 (またはパッケージ) に利用可能な更新がある場合は、それらも更新されます。
単一パッケージの更新
単一パッケージを更新するには、
root
で以下のコマンドを実行して下さい:
yum
update
package_name
例として、udev パッケージを更新するには以下のとおり入力します:
~]# yum update udev
Loaded plugins: product-id, refresh-packagekit, subscription-manager
Updating Red Hat repositories.
INFO:rhsm-app.repolib:repos updated: 0
Setting up Update Process
Resolving Dependencies
--> Running transaction check
---> Package udev.x86_64 0:147-2.15.el6 set to be updated
--> Finished Dependency Resolution
Dependencies Resolved
===========================================================================
Package Arch Version Repository Size
===========================================================================
Updating:
udev x86_64 147-2.15.el6 rhel 337 k
Transaction Summary
===========================================================================
Install 0 Package(s)
Upgrade 1 Package(s)
Total download size: 337 k
Is this ok [y/N]:
この出力には興味を引く項目が数点あります。
Loaded plugins: product-id, refresh-packagekit, subscription-manager
—yum
は、どの Yum プラグインがインストールされ有効であるかを常に通知します。Yum プラグインに関する全般情報は 「Yum のプラグイン」 を参照してください。また、個別のプラグインに関する説明は 「プラグインの詳細」 を参照してください。udev.x86_64
— 新しい udev パッケージをダウンロードしてインストールできます。yum
は、更新情報を表示して、更新を実行したいかどうかを確認します。yum
はデフォルトではインタラクティブに実行します。yum
コマンドがどのトランザクションを実行するかが事前に分かっている場合は、-y
オプションを使用して、yum
が行うすべての質問にyes
と自動回答するように設定できます (この場合はノンインタラクティブに実行されます)。ただし、yum
がシステムに実行しようとしている変更を常に調べることをお勧めします。そうすることで、起こり得る問題を簡単に解決することができます。トランザクションが正しく行われなかった場合は、yum history
コマンドを使用して 「トランザクション履歴の活用」 にあるように Yum のトランザクション履歴を閲覧することができます。
重要
rpm -i kernel
のコマンドを使用すると、RPM が新しいカーネルをインストールするのと同じように、yum
は常に新しいカーネルを インストール します。そのため、yum
を使用する場合は、カーネルパッケージの インストール と アップグレード の区別について気にする必要はありません。つまり、yum update
か yum install
のコマンドどちらを使用するかに関わらず正しく実行します。
一方で、RPM を使用する場合は、
rpm -u kernel
(現在のカーネルと 置換) の代わりに、rpm -i kernel
コマンド (新しいカーネルのインストール) を使用することが重要です。RPM を使ったカーネルのインストール/アップグレードについての詳細は、「インストールとアップグレード」 を参照してください。
すべてのパッケージとそれらの依存関係の更新
すべてのパッケージとそれらの依存関係を更新するには、
yum update
と (引数なしで) 入力するだけです:
yum update
セキュリティ関連パッケージの更新
どのパッケージに利用可能なセキュリティの更新があるのかを見つけ出し、そうしたパッケージを迅速かつ簡単に更新することは重要です。このため、Yum はプラグインを提供します。security プラグインは、
yum
コマンドを非常に便利なセキュリティ中心のコマンド、サブコマンド、オプションのセットにより拡張します。具体的な情報は 「プラグインの詳細」 を参照して下さい。
6.1.3. 設定ファイルの変更の保存
Red Hat Enterprise Linux システムを使用していると、パッケージによりインストールされた設定ファイルに変更を加える必要がでてきます。システムに変更を加えるために Yum が使用する RPM には、整合性を確保する仕組みが備わっています。パッケージのアップグレード全般に渡る設定ファイルへの変更を管理する方法の詳細については、「インストールとアップグレード」 を参照して下さい。