2.2. パッケージの管理
- 2.2.1. RPMによるパッケージ管理
- 2.2.2. パッケージ管理ツール
- 2.2.3. YUM(Yellowdog updater modified)
- 2.2.4. Red Hat ネットワーク
2.2.1. RPMによるパッケージ管理
原文:Chapter 10. Package Management with RPM
RPMパッケージマネージャ(RPM)は公開されたパッケージ管理システムで、LinuxやUNIXシステム上と同様にRed Hat Enterprise Linux上でも動作します。Red Hat社では他社の製品にはそれ用のRPMを使用することを推奨しています。RPMはGPLの元配布されます。
パッケージをインストールする時、インストールしようとしているオペレーティングシステムやアーキテクチャに適合しているかを確認して下さい。通常はパッケージ名を見ればどのパッケージが適したものかを判断できます。
アップグレードする間、RPMは設定ファイルを注意深く管理します。
そのためあなた固有の設定を失うことはありません。
時々通常の.tar.gz
ファイルではアップグレードできないこともあります。
開発者がRPMを使うと、ソフトウェアのソースコードを取り込み、ソースとバイナリパッケージをひとまとめにしてエンドユーザに提供することができます。 RPMを使ったインストールは非常に簡単で、1つのファイルと開発者が作った適切なオプションパッチで行うことができます。 この原始コードとあなたの作ったパッチとの間の明確な概要説明に指示書が伴ったものは、パッケージの維持だけでなく新たなバージョンのソフトウェアが公開された時の手続きも簡単にしてくれます。
RPMはあなたのシステムに変更を加えるため、インストール、削除、アップグレードするのに管理者権限でログインする必要があります。
2.2.1.1. RPM設計の目的
どうやってRPMを使うかを理解するのに、RPM設計の目的を理解することが助けになるでしょう。
- 更新しやすさ(Upgradability)
- 豊富な条件指定ができること(Powerful Querying)
- システム検証(System Verification)
- 元のソースが使えること(Pristine Source)
2.2.1.2. RPMの使用
RPMは5つの基本的な操作モードがあります(パッケージの作成を除く)。その5つとは、インストール(install)、アンインストール(uninstall)、アップグレード(upgrade)、問い合わせ(query)、検証(verify)です。この節では各モードの概要について説明します。詳しくはrpm --help
またはman rpm
を参照下さい。また2.2.1.5. リソース追加に記載されているRPMに関する追加情報もご参照下さい。
2.2.1.2.1. RPMパッケージを見つける
RPMパッケージを使う前に、それがどこにあるのかを知る必要があります。インターネットを検索すれば、たくさんのRPMが見つかるでしょう。しかしRed Hatで作られたRPMを探しているなら、下記の場所で見つかるでしょう。
- Red Hat Enterprise LinuxのCD-ROM内
- Red Hat 正誤表ページ:http://www.redhat.com/apps/support/errata/
- Red Hatネットワーク→ 2.2.4. Red Hatネットワーク参照。
インストール
PRMパッケージファイルの名前は通常foo-1.0-1.i386.rpm
のようになっています。ファイル名にはパッケージ名(foo
)、バージョン(1.0
)、リリース番号(1
)、アーキテクチャ(i386
)が示されています。
パッケージをインストールするには管理者権限でログインし、以下のコマンドをシェルプロンプトに入力します。
rpm -ivh foo-1.0-1.i386.rpm
代わりに下記のコマンドを使うこともできます。
rpm -Uvh foo-1.0-1.i386.rpm
インストールに成功すれば、次のような出力内容が表示されます。
Preparing... ###################################### [100%] 1:foo ###################################### [100%]
見ての通り、RPMはパッケージ名を表示し、パッケージのインストールが完了するまでの進行状況をハッシュマーク(#)の数で示してくれます。
パッケージの署名は、インストールまたはアップグレードの際自動的に検査されます。署名はそのパッケージが権威ある部門で署名されたことを確認します。例えば、署名の検証に失敗すれば、以下のようなエラーメッセージが表示されます。
error: V3 DSA signature: BAD, key ID 0352860f
もしそれが新たなもので、ヘッダーだけの署名ならエラーメッセージは次のようになるでしょう。
error: Header V3 DSA signature: BAD, key ID 0352860f
もし署名を検証するのに適当なキーを持っていなければNOKEY
という語を含む次のようなメッセージが表示されるでしょう。
warning: V3 DSA signature: NOKEY, key ID 0352860f
パッケージの署名検証について詳しくはパッケージの署名をチェックするを参照下さい。
カーネルパッケージをインストールする時は、rpm -ivh
を使う方がいいでしょう。詳しくは「手動でカーネルをアップグレードする」を参照下さい。
アップグレード
パッケージのアップグレードはインストールと似ています。以下のコマンドをシェルプロンプトに入力して下さい。
rpm -Uvh foo-2.0-1.i386.rpm
更新(Freshing)
更新(freshing)はアップグレードと似ていますが、その対象は既にインストールされているパッケージのアップグレードに限られます。以下のコマンドをシェルプロンプトに入力して下さい。
rpm -Fvh foo-2.0-1.i386.rpm
たくさんのrpmをダウンロードし、その中で既にインストールされているものだけをアップグレードしたい時に有用。
問い合わせ(Querying)
RPMデータベースはシステムにインストールされている全てのRPMパッケージに関する情報を保持しています。その情報は/var/lib/rpm/
のディレクトリにあり、どんなパッケージ、どのバージョンがインストールされているか、またはインストール以降どのファイルにどんな変更があったかなどの問い合わせに利用されます。
このデータベースに問い合わせを行うには-q
オプションを利用します。
rpm -q パッケージ名
コマンドを実行すると、インストールされているパッケージのパッケージ名、バージョン、リリース番号が表示されます。例えば、rpm -q foo
を実行すれば、インストールされているパッケージfoo
は次のような出力を行うでしょう。
foo-2.0-1
以下のパッケージ選択オプションを-q
法ションと併用して更に条件を限定することができます。
-a
- 現在インストールされている全てのパッケージについて問い合わせる。
-f ファイル名
-
指定したファイル名を所有するパッケージについて問い合わせる。ファイルの指定は絶対パスで行う(例:
rpm -f /bin/ls
)。 -p パッケージファイル名
- パッケージファイル名で指定した、まだインストールされていないパッケージについて問い合わせる。
表示するパッケージ情報を指定する方法はたくさんあります。 以下のオプションは探している情報の型を選択するのに使われます。 これらは「情報問い合わせオプション」(Information Query Option)と呼ばれます。
-i
- パッケージ名、説明、リリース番号、サイズ、作られた日、インストールされた日、作成者などの情報を表示する。
-l
- パッケージに含まれるファイル一覧を表示する。
-s
- パッケージ内の全ファイルの状態を表示する。
-d
- パッケージ内で種類が文書であるファイル(manページ、infoページ、READMEなど)の一覧を表示する。
-c
-
パッケージ内で種類が設定ファイルであるファイルの一覧を表示する。パッケージをカスタマイズするためにインストール後編集するファイル(例:
sendmail.cf
、passwd
、inittab
など)が含まれる。
ファイル一覧を表示するオプションで-v
オプションを追加すれば、ls -l
コマンドの出力形式で一覧を表示することができる。
2.2.1.4. RPM使用の実際の一般的な事例
原文:10.4. Practical and Common Examples of RPM Usage
RPMはシステムを管理する上でも、問題の診断と修正の上でも役立つ道具です。いくつかの例を見るのは全てのオプションを理解する良い方法です。
偶然あるファイルを削除してしまったが、何を消したのか分からない時、システム全体を検査し、何がなくなっているのかを知るには、以下のコマンドを実行すればいいでしょう。
rpm -Va
2.2.3. YUM(Yellowdog updater modified)
2.2.3.1. yumレポジトリの設定
原文:12.1. Setting Up a yum Repository
yumレポジトリの設定方法は以下の通り。
createrepo
パッケージをインストールする(yum install createrepo
)。- 全てのパッケージを1つのディレクトリにコピーする。
- パッケージを集めた前項のディレクトリで
createrepo
コマンドを実行する。これによりyumレポジトリに必要なメタデータが生成される。
2.2.3.4. yumレポジトリの設定
特に設定しなければ、yumの設定は/etc/yum.conf
に記述されます。1つだけ必ず設置する[main]部とそれ以外で構成され、[main]部は複数のレポジトリに共通する設定を行います。[main]部は以下のようになっています。
[main]
cachedir=/var/cache/yum
キャッシュやデータベースのファイルを置く場所を指定します。既定値は/var/cache/yum
です。
keepcache=0 | 1
インストール成功後にヘッダとパッケージのキャッシュを残すかどうかを設定します。
keepcache=1 と記述すると保持し、keepcache=0 と記述すると保持しません。既定値は 1 です
debuglevel=2
logfile=/var/log/yum.log
pkgpolicy=newest
distroverpkg=redhat-release
tolerant=1
exactarch=1
obsoletes=1
gpgcheck=1
plugins=1
metadata_expire=1800
[myrepo] name=RHEL 5 $releasever - $basearch baseurl=http://local/path/to/yum/repository/ enabled=1