連載
» 2008年05月22日 00時00分 UPDATE

実践でも役立つLPICドリル(2):RPMによるパッケージ管理を理解する (1/3)

本連載は、Linux 認定試験 LPICに対応しています。一般的なLinuxユーザーレベルのトピックは省略し、システム管理とサーバ管理の内容を取り上げています。また、LPIC対策だけでなく、関連するトピックについて系統的な理解を問う問題も出題しています。連載の特徴は、対象となるプログラムのバージョンを可能な限り明記していること、比較的新しくまとまった解説がまだ少ないトピック、重要だが理解しにくいトピックを優先して取り上げていることです。問題を解き、その解説を読むことにより実践でLinuxを活用できる力を身に付けます。

[大竹龍史,ナレッジデザイン]

今回のディストリビューション: CentOS4.4、Fedora8

問題を解く鍵

 このトピックは、「RPMによるパッケージ管理」です。これに関連した試験問題を解くには、以下の項目がポイントになります。

【1】RPMの機能を理解する

 RPM(RedHat Package Manager)はレッドハットが開発したパッケージ管理のためのソフトウェアです。

(注)Linuxのパッケージ管理システムには、RPMのほかにDebianプロジェクトで開発されたものがあります。LPIではこの2つが試験範囲となっていますが、今回の記事ではRPMのみを扱います。


 RPMでは、関連したファイルはソフトウェアの種類ごとにグループ化されてパッケージとしてまとめられ、パッケージ単位で検索、インストール、アップグレード、アンインストール、検査などの管理ができます。

 RPMには重要な機能の1つとして、パッケージ間の依存関係のチェック機能があります(図1)

  • パッケージAのインストール時、パッケージAに必要なパッケージBがまだインストールされていない場合は、その旨表示します
  • パッケージAのアンインストール時、パッケージAを必要とするほかのパッケージBがある場合はその旨表示します
図1 パッケージ間の依存関係 図1 パッケージ間の依存関係

【2】パッケージ管理の基本的なオプション(検索、インストール、アップグレード、アンインストール、検査のオプション)を把握しておく

【3】データベースの修復方法、パッケージ署名のチェック方法を把握しておく

 RPMはシステムにインストールされたパッケージの情報を/var/lib/rpmディレクトリの下のBerkeley DBで管理しています。このBerkeley DBの検索インデックスが一部壊れることがあり、その場合の修復オプションを覚えておくと役に立ちます。

修復コマンド: rpm --rebuilddb

 パッケージには、パッケージのダイジェストとパッケージの情報を保持するヘッダのダイジェストが含まれており、この値と計算したダイジェストを比較すると、パッケージ内容の改ざんの有無を検査できます。

 また、作成者の秘密鍵でパッケージとヘッダに署名することができます。パッケージの利用者は作成者が署名した秘密鍵と対の公開鍵により、署名が本物かどうかを調べ、パッケージが正当なものであるかどうかを検証できます。署名に使用する秘密鍵/公開鍵はGPGにより生成、管理されます。

(注)GPG(GNU Privacy Guard)は、公開鍵暗号PGP(Pretty Good Privacy)の標準仕様であるOpenPGPのGNUによる実装です。


 デフォルトでは、パッケージのインストール時にダイジェストのチェックと署名チェックが行われます(図2)。

図2 パッケージが正当なものであるかどうかの検証 図2 パッケージが正当なものであるかどうかの検証
       1|2|3 次のページへ

Copyright© 2017 ITmedia, Inc. All Rights Reserved.

TechTargetジャパン

この記事に関連するホワイトペーパー

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。