Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

付録B RPM

RPM Package Manager (RPM パッケージマネージャ) (RPM) は、オープンパッケージングシステムで、Red Hat Enterprise Linux だけでなく他の Linux や UNIX システム上でも動作します。Red Hat, Inc. と Fedora Project では、他のベンダーに対し、自社製品に RPM を使用するよう奨励しています。RPM は GPL (GNU General Public License) 契約に基づいて配布されます。
RPM パッケージマネージャは、RPM 形式 と作動するようにビルトされたパッケージとともにのみ作動します。RPMは、プレインストールされた rpm パッケージとして提供されています。エンドユーザーは、RPM によりシステムを簡単に更新することができます。RPM パッケージのインストール、アンインストール、アップグレードは短いコマンドで実行できます。RPM はインストール済みのパッケージやそのファイル群に関するデータベースを維持しているため、システムで強力なクエリや検証を実行することができます。
RPM のパッケージ形式は、Red Hat Enterprise Linux 6 では改善されています。RPM パッケージは、XZ 無損失データ圧縮形式を使用して圧縮されます。これにはより強い圧縮と、圧縮解除時の CPU 使用低減という利点があり、パッケージの署名や検証において SHA-256 などの強力な複数ハッシュアルゴニズムをサポートします。

警告

大部分のパッケージ管理のタスクでは、Yum パッケージマネージャは、RPM と同じくらいかそれよりも卓越した機能とユーティリティを提供します。 Yum は、複雑なシステムの依存関係解決の実行と追跡をします。また、パッケージのインストールと削除に RPM も使用している場合はそれを指摘してシステムの整合性確認を強要します。これらの理由により、パッケージ管理のタスクを実行するにあたっては、可能な限り RPM の代わりに、Yum を使用することを強くお勧めします。6章Yum を参照してください。
グラフィカルインターフェースを選択したい場合は、PackageKit GUI アプリケーションを使用できます。これは、Yum をそのバックエンドとして使用するものであり、システムのパッケージを管理します。詳しくは 7章PackageKit を参照してください。

重要

パッケージのインストール時には、オペレーティングシステムとプロセッサのアーキテクチャに互換性があることを確かめてください。通常パッケージ名を確認すると分かります。次に示す例の多くは、AMD64/Intel 64 コンピュータのアーキテクチャ用にコンパイルされた RPM パッケージを示しています。そのため、RPM のファイル名は、x86_64.rpm で終わります。
アップグレード時に、RPM は設定ファイルを慎重に処理するためカスタム設定が失われることはありません。通常の .tar.gz ファイルでは、実現することができない特性です。
開発者はRPM を使用することで、ソフトウェアのソースコードを取り出し、エンドユーザー用にソースパッケージとバイナリパッケージにパッケージ化することができます。このプロセスは極めて単純で、1つのファイルとユーザーが作成するオプションのパッチを基に実行されます。ビルドの指示に加えて、純粋な ソースとパッチの明確な説明により、ソフトウェアの新バージョンリリース時にパッケージの維持が容易になります。

注記

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

B.1. RPM の設計目標

RPM の使用方法を理解するためには、RPM の設計目標を理解するとよいでしょう。
アップグレードの可能性
RPM を使用すれば、コンポーネントを完全に再インストールすることなく、個別にコンポーネントをアップグレードすることができます。Red Hat Enterprise Linux などの RPM に基づくオペレーティングシステムの新しいリリースを入手したときには、マシンにオペレーティングシステム自体を再インストールする必要がありません(他のパッケージングシステムに基づくオペレーティングシステムの場合はその必要があります)。RPM を使用すれば、インテリジェントで、完全自動化された適切なシステムのアップグレードを行うことができます。その上、パッケージに含まれる設定ファイルはアップグレード後にも保持されるので、カスタム設定が失われることはありません。システム上でのパッケージのインストールとアップグレードでは同じ RPM ファイルが使用されるため、パッケージをアップグレードするために特別なアップグレードファイルが必要になることはありません。
強力なクエリ
RPM では、強力なクエリのオプションが提供されています。データベース全体を通じてパッケージを検索したり、特定のファイル群のみを検索したりすることができます。あるファイルがどのパッケージに属し、どこから来たのかをも簡単に検索できます。RPM パッケージに含まれるファイルは圧縮アーカイブ形式であり、パッケージとその内容に関する有用な情報を含むカスタムバイナリヘッダが付いているため、個別のパッケージをすばやく簡単にクエリすることができます。
システムの検証
RPM のもう1つの強力な特徴は、パッケージの検証が可能であるということです。パッケージに関する重要なファイルを削除してしまったのではないかと心配になった場合には、パッケージを検証することができます。何か異常があれば通知されますので、その時点で必要に応じてパッケージを再インストールできます。再インストールを行っても、修正した設定ファイルは保持されます。
純粋なソース
極めて重要な設計目標は、ソフトウェアのオリジナル作者によって配布されたときのままの 純粋な ソフトウェアソースをユーザーが利用できるようにすることでした。RPM を使用した場合、純粋なソースと適用済みのパッチ、完全なビルド指示が入手できます。様々な理由から、これは大きなメリットとなります。例えば、あるプログラムの新しいバージョンがリリースされた場合、それをコンパイルするために必ずしも最初から作業を始める必要はなくなります。パッチを見て、必要になる かもしれない 作業を確かめることができます。この技術を使えば、コンパイル済みのすべてのデフォルト設定と、ソフトウェアを適切に構築するために行われたすべての変更内容を容易に目に見える形にすることができます。
ソースを純粋な状態に保持するという目標は、開発者にとってのみ重要なことのように思われるかもしれませんが、結果として、エンドユーザーにより高品質のソフトウェアが提供されることにもなります。