Chapter 6. RPM によるパッケージ管理

Red Hat Package Manager (RPM)は誰もが利用できるオープンパッケージングシステムであり、 Red Hat Linux 上で動作するだけでなく、他の Linux および UNIX システムでも動作します。Red Hat, Inc. は、他のベンダに対して、RPM を検討し、各社の製品のために使用することを奨励しています。RPM は GPL 契約に基づいて配布されます。

RPM は、以前よりもシステムの保守を簡単にする多くの機能をエンドユーザに提供しています。RPM パッケージのインストール、アンインストール、およびアップグレードはどれも 一行のコマンドによって実行されるので、細々としたことを気にする必要はありません。RPM はインストール済のパッケージおよびそのファイル群に関するデータベースを維持しているため、ユーザはシステムに関する強力なクエリおよび検証を実行することができます。

アップグレード時に、RPM は設定ファイルを特別な方法で処理するので、カスタマイズ情報が失われることがありません。つまり、普通の .tar.gz ファイルを使用した場合ではこのような機能を実現することができません。

開発者は、RPM を使用することにより、ソフトウェアのソースコードを取り出し、それをパッケージ化することでエンドユーザ用のソースパッケージとバイナリパッケージを作ることができます。このプロセスは極めて単純なので、単一のファイルと、ユーザが作成するオプションのパッチをもとに実行することができます。ソフトウェアの新しいバージョンがリリースされた場合でも、この 「純粋な」 ソースを明確に記述したファイル、パッチ、およびビルド命令を使用することで容易にパッケージを保守することができます。

注意注意:
 

RPM の基本的な考え方を理解することは重要ですが、コマンドラインよりもグラフィカルインタフェースを好む人については Gnome-RPM の利用を提案します。詳細については、Chapter 7 を参照してください。

RPM の設計目標

RPM の使用方法を理解する前に、設計の目標を考えてみると参考になります。

アップグレードの可能性

RPM を使用すれば、コンポーネントを完全に再インストールすることなく、個別にコンポーネントをアップグレードすることができます。RPM に基づくオペレーティングシステム (Red Hat Linux など) の新しいリリースを入手した時に、それをマシン上に再インストールする必要はありません (他のパッケージングシステムに基づくオペレーティングシステムの場合はその必要があります)。RPM を使用すれば、賢く、完全に自動化された、適切なシステムのアップグレードを行うことができます。パッケージに含まれる設定ファイルはアップグレード後にも保持されるので、カスタマイズ情報が失われることがありません。

強力なクエリ

RPM は強力なクエリオプションを持つようにも設計されています。データベース全体を通じてパッケージを検索したり、一定のファイル群のみを検索したりすることができます。あるファイルがどのパッケージに属し、どこから来たのかをも簡単に検索することができます。RPM パッケージに含まれるファイルは圧縮アーカイブ形式であり、パッケージとその内容に関する有用な情報を含むカスタムバイナリヘッダが付いているため、個別のパッケージを素早く簡単にクエリすることができます。

システムの検証

もう一つの強力な特徴は、パッケージの検証が可能であるということです。パッケージに関する重要ファイルを削除してしまったのではないかと心配になった場合には、単純にパッケージを検証してみてください。何か矛盾があれば通知されます。その時点で、必要に応じてパッケージを再インストールすることができます。再インストールを行っても、すでに修正してある設定ファイルは保持されます。

純粋なソース

最終的な設計目標は、ソフトウェアのオリジナル作者によって配布された時のままの 「純粋な」 ソフトウェアソースをユーザが利用できるようにすることでした。RPM を使用した場合、用意するのは純粋なソースと適用済のパッチ、および完全なビルド命令群です。いくつかの理由があるため、これは大きなメリットになります。たとえば、あるプログラムの新しいバージョンがリリースされた時に、そのプログラムのコンパイルをゼロの状態から行う必要がありません。パッチを見れば、実行する必要があるかどうかが分かります。このようにして、組込済のすべてのデフォルト設定、およびソフトウェアを適切に構築するために行われたすべての変更内容を、容易に目に見える形にすることができます。

この目標は開発者のみにとって重要なものに思えるかもしれませんが、結果としてエンドユーザにとっても高品質のソフトウェアが手に入ることになります。純粋なソースという考え方を考案した BOGUS ディストリビューションの人々に感謝したいと思います。