RPM Package Manager(RPM)
RPMは、多くのLinuxディストリビューションでソフトウェアのインストール、照会、ビルド、検証に使われる広く利用されたパッケージ形式およびツール群です。.rpmファイル、メタデータ、署名、ビルドルールを定義します。
概要
RPM Package Manager(一般にRPMと呼ばれる)は、多くのLinuxディストリビューションでソフトウェアを配布、インストール、管理するために用いられるパッケージ形式およびツール群です。バイナリファイルのアーカイブに、ファイル、バージョン管理、依存関係に関するメタデータを組み合わせます。パッケージ管理の一形態として、RPMはインストール済みファイルの照会、整合性の検証、署名付き更新の適用を行う仕組みを提供します。
構造と構成要素
RPMパッケージには通常、コンパイル済みプログラムファイル、文書、およびパッケージ名、バージョン、リリース、アーキテクチャ、依存関係リスト、インストール時に実行されるスクリプト、暗号署名などのメタデータが格納されます。ソースパッケージ(多くは.src.rpmという名前)は、ソースコードと、バイナリパッケージのビルド方法を記述するspecファイルを含みます。
- ファイル形式: パッケージは.rpm拡張子を使用し、ペイロードとヘッダーを内包します。詳細は正式なファイル形式の説明を参照してください。
- specファイル: ビルド手順(%prep、%build、%install)、含めるファイル、パッケージのメタデータを定義するレシピです。
- データベース: rpmデータベースは、インストール済みパッケージ、ファイル一覧、チェックサムを追跡します。
- 署名: パッケージはGPG署名を付与でき、インストーラーは導入前に真正性を検証できます。
歴史と開発
RPMは1990年代にRed Hatに関連するツールとして生まれ、複数のディストリビューションにおける事実上の標準パッケージ形式となりました。時代とともに、依存関係処理、スクリプトフック、署名サポートを改善する主要バージョンを経て進化しました。YUM、DNF、zypperなどの多くのディストリビューションやツールはRPMパッケージを使用しますが、より上位のリポジトリ管理機能や依存関係解決機能を追加しています。
一般的な利用方法と例
管理者や開発者は、低レベルのrpmコマンドと上位レベルのフロントエンドを組み合わせて使用します。代表的な操作には、パッケージのインストールとアップグレード、パッケージ内容の照会、ファイル整合性の検証、specファイルからの新しいRPMのビルドがあります。ソースRPMは、再現可能な方法でソースを配布し、特定のディストリビューション向けのカスタムビルドを作成するために使われます。
- インストールまたはアップグレード: rpm -i または rpm -U(低レベルのインストーラー)
- 照会: rpm -q、rpm -ql、rpm -qiでパッケージ、ファイル、情報を一覧表示
- ビルド: specファイルとrpmbuildを用いて.rpmおよび.src.rpmを生成
- 検証: rpm --verifyでファイルのチェックサムとアクセス権を確認
意義と他方式との違い
RPMは、パッケージが依存関係とファイル一覧を宣言する方法を標準化し、メンテナーが関連するシステム間で再利用可能なバイナリ配布物を作成することを支援しました。ツールやメタデータの詳細では、Debianの.deb形式など他のパッケージシステムと異なりますが、管理された方法でソフトウェアのインストール、アップグレード、削除を可能にするという基本的な目的は同じです。パッケージングやリポジトリ作成に関する文書とコミュニティのリソースは広く提供されており、多くのメンテナーはパッケージングリソースのような公式ガイドやツールのページを参照します。
関連項目
著者
AlegsaOnline.com RPM Package Manager(RPM) Leandro Alegsa
URL: https://ja.alegsaonline.com/art/84540
出典
- rpm.org : "Maximum RPM: Taking the Red Hat Package Manager to the Limit"