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

 Red HatパッケージマネージャRPM)は、誰もが利用できるオープンパッケージングシステムで、Red Hat Linuxだけでなく他のLinuxやUNIXシステム上でも動作します。Red Hatでは、他のベンダーに対し、自社製品にRPMを使用するよう奨励しています。RPMはGPL契約に基づいて配布されます。

 エンドユーザーはRPMによりシステムを簡単にアップデートできます。RPMパッケージのインストール、アンインストール、アップグレードは短いコマンドで実行できます。RPMはインストール済みのパッケージやそのファイル群に関するデータベースを維持しているため、ユーザーはシステムに関する強力な問い合わせ/検証を実行することができます。グラフィカルインターフェイスの方が好ましい場合は、Gnome-RPMを使用して多くのRPMコマンドを実行することができます。

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

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

NoteRPMコマンドはrootで実行
 

RPMはシステムに変更を加えるため、RPMパッケージのインストール、削除、アップグレードはrootで実行します。

RPMの設計目標

 RPMの使用方法を理解するには、RPMの設計目標を理解するとよいでしょう。

アップグレードの可能性

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

強力な問い合わせ

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

システムの検証

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

純粋なソース

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

 ソースを純粋な状態に保持するという目標は、開発者にとってのみ重要なことのように思われるかもしれませんが、結果として、エンドユーザーにより高品質のソフトウェアが提供されることにもなります。純粋なソースのコンセプトを最初に考え出したBOGUSディストリビューションのみなさんに感謝の意を表したいと思います。