RPM (RPM Package Manager) は、Red Hatによって開発された
ソフトウェアパッケージ管理システムであり、そのコマンドも指します。以前はRed Hat Package Managerの略称でしたが、現在はRPM Package Managerとして知られています。主に、".rpm"という
拡張子を持つファイルを利用します。
概要
RPMは、主にRed Hatが提供する
Linuxディストリビューションだけでなく、SUSE
LinuxやVine
Linuxといった、RPM系のディストリビューションでも広く利用されています。各ディストリビューションは、独自のカスタマイズを加えながらRPMを採用しています。
RPMパッケージは、cpio形式でアーカイブされており、その中には独自のspecファイル、
バイナリファイル、または
ソースコードが含まれています。パッケージ管理のための
データベースには、Berkeley DBが使用されており、
インストール、削除、パッケージ情報の問い合わせ時にこの
データベースが参照されます。RPMコマンドには、
データベースを管理するための様々なオプションが含まれています。
specファイルには、パッケージの名前、概要、依存関係にあるパッケージ、
バイナリパッケージの
インストール先パス、
インストール前後に実行するスクリプトなどが記述されています。
インストール時には、これらのスクリプトが実行され、サーバの停止と復帰、システムユーザーの追加など、システムの安全性を維持するための操作が行われます。
specファイルは、宣言部と実行部に分かれています。宣言部には、パッケージに関する説明的な詳細が記述され、実行部には、
インストール時に実行されるスクリプトが記述されます。これにより、パッケージの
インストールプロセスを細かく制御することが可能です。
RPMは、ローカルのパッケージファイルだけでなく、HTTPやFTPを介してネットワークからパッケージを
インストールすることも可能です。ただし、RPM自体は依存性の解決機能を持たないため、依存関係に欠落がある場合は、ユーザーが手動で必要なパッケージを
インストールするか、YUMやAPT for rpmといった別のツールを利用して解決する必要があります。また、
ソースコードから独自に
インストールされた
ソフトウェアは、RPMの管理対象外となり、依存性解決の際には考慮されません。
RPMは通常、
バイナリパッケージの
インストールに利用されますが、
ソースコードからパッケージを作成することもサポートしています。specファイルに従ってパッケージをその場で作成し、
インストールすることができます。この機能により、特定の環境に合わせたパッケージのカスタマイズが容易になります。
RPMは
C言語で開発されており、
C言語、
Java、
Perl、
Python、
Rubyなどの様々な言語バインディングも提供、または独自に作成されています。これにより、コマンドラインだけでなく、プログラムからもRPMパッケージを扱うことができ、より柔軟なシステム管理が可能になります。
関連項目
Linux Standard Base
APT
出典
rpm.org (英語)
rpm package manager (英語)