home(h) links(l) memo profile(r)
memo(m) CentOS Document 2. 構成について(u) 2.2. パッケージ管理

CentOS-5.2 Document 2.2. パッケージ管理

CentOS-5.2に関する文書を個人的に訳したものです。元文書はPart II. Package Management

2.2. パッケージの管理

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設計の目的

原文:10.1. RPM Design Goals

どうやって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を探しているなら、下記の場所で見つかるでしょう。

インストール

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.cfpasswdinittabなど)が含まれる。

ファイル一覧を表示するオプションで-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レポジトリの設定方法は以下の通り。

  1. createrepoパッケージをインストールする(yum install createrepo)。
  2. 全てのパッケージを1つのディレクトリにコピーする。
  3. パッケージを集めた前項のディレクトリでcreaterepoコマンドを実行する。これによりyumレポジトリに必要なメタデータが生成される。

2.2.3.4. yumレポジトリの設定

原文:12.4. Configuring 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