RPM ファイル形式とは?
拡張子 .rpm を持つファイルは、Linux ベースのオペレーティングシステムで使用されるパッケージファイルです。もともと .rpm 形式は Red Hat が自社の Linux ディストリビューション用に開発したものですが、今日では Fedora、RHEL、CentOS、openSUSE、Mageia、その他多くのディストリビューションで広く使用されています。
.rpm ファイルは、互換性のある Linux システムに特定のアプリケーションをインストールするために必要なすべてを含むソフトウェアパッケージです。RPM はもともと Red Hat Package Manager の略でしたが、現在はオープンソースコミュニティの RPM.org によってプロジェクトが維持されており、コマンドラインツールは単に rpm と呼ばれます。この形式は、Linux アプリケーションのインストールと配布を簡素化するように設計されており、エンドユーザーがインストールに必要な個々のファイルを管理する必要がありません。
内部的には、.rpm はリードセクション、GPG 署名ヘッダー、タグ付きメタデータヘッダー、および実際のファイルを保持する圧縮された .cpio ペイロードで構成されるバイナリ構造を持っています。最新のパッケージは、そのペイロードを XZ/LZMA で圧縮します。gzip、bzip2、Zstd もサポートされています。パッケージは dnf (Fedora/RHEL) または zypper (openSUSE) を介してインストールされ、これらは依存関係を自動的に解決します。.src.rpm バリアントは、実行可能なバイナリの代わりにソースコードとビルド手順を保持します。Windows や macOS では、7-Zip などのツールを使用して .rpm の内容を抽出して検査できますが、インストールスクリプトはネイティブの RPM ベースの Linux システム以外では実行できません。Debian ベースのシステムにおける最も近い同等品は .deb 形式です。
セキュリティと安全性
リスク: MEDIUMRPM パッケージはインストール/アンインストールスクリプトを root として実行するため、悪意のある .rpm はシステムを完全に侵害する可能性があります。信頼できるベンダー/リポジトリからの RPM のみをインストールし、最初に GPG 署名を検証してください: rpm --checksig package.rpm (およびベンダーのキーをインポート)。ディストリビューションは、署名されていないパッケージをインストールする前に警告を表示します。Windows/macOS では .rpm は実行できないため、そこでの検査は無害です。ランダムな «rpm to exe» や «rpm opener» サイトは避けてください。これらは誤解を招くものであり(RPM は Windows では動作しません)、多くの場合アドウェアをバンドルしています。
形式の詳細
概要RPM ファイルを開くプログラム
sudo alien -i package.rpm で .deb として変換およびインストールします。注意して使用してください。ネイティブの .deb が推奨されます。 sudo dnf install ./package.rpm - パッケージをインストールし、依存関係を自動的に解決します。生の rpm よりも推奨されます。 sudo zypper install ./package.rpm - SUSE システムで依存関係を解決しながらインストールします。 sudo rpm -ivh package.rpm でインストール、rpm -qlp でファイル一覧表示、rpm --checksig で検証を行います。依存関係の自動解決は行いません。 技術的詳細
詳細仕様| MIME タイプ | application/x-rpm (application/x-redhat-package-manager も許容) |
| ファイルマジックバイト | オフセット 0 に ED AB EE DB - «edabeedb» RPM リードシグネチャ |
| 内部構造 | リードセクション → GPG 署名ヘッダー → タグ付きメタデータヘッダー → 圧縮 cpio ペイロード |
| ペイロード圧縮 | XZ/LZMA (Fedora/RHEL の最新のデフォルト)、gzip、bzip2、または Zstd。パッケージビルドごとに選択可能 |
| ヘッダーのバイト順序 | ビッグエンディアン。各タグエントリは 4 バイトのタイプ、4 バイトのカウント、およびデータストアへのオフセットを格納 |
| パッケージ署名 | 署名ヘッダーに埋め込まれた GPG 署名。`rpm --checksig` で検証 |
| 依存関係メタデータ | 自動解決のためにメインヘッダーに格納された Requires、Provides、Conflicts、および Obsoletes タグ |
| インストールスクリプトレット | パッケージに埋め込まれたインストール前後(%pre/%post)およびアンインストール前後(%preun/%postun)のスクリプト |
| ファイルごとの整合性 | ヘッダーに格納されたファイルごとの SHA-256 ダイジェスト(古いパッケージでは MD5)。インストール後にチェック |
| パッケージ形式バージョン | v4 (現在、RPM 4.x ツールチェーン)。RPM v6 形式が RPM.org で活発に開発中 |
| 関連パッケージマネージャー | `dnf` (Fedora, RHEL, CentOS Stream), `zypper` (openSUSE/SUSE), `rpm` (低レベルコマンド) |
| ソースパッケージバリアント | `.src.rpm` (SRPM) は、コンパイル済みバイナリの代わりにソース tarball と `.spec` ビルドレシピを含む |
| サポートされているインストールプラットフォーム | RPM ベースの Linux ディストリビューション: Red Hat, Fedora, RHEL, CentOS, openSUSE, Rocky Linux, AlmaLinux, Mageia |
| 一般的なファイルサイズ | 数十 KB(小さなユーティリティ)から数百 MB(大規模なアプリケーション、開発ツールチェーン、またはファームウェア) |
| 再配置可能性 | パッケージに再配置可能フラグを設定でき、ユーザー定義のプレフィックスパスへのインストールを許可 |
| リリース日 | 1997 (RPM, with Red Hat Linux 5.0; rpm-software-management is the current upstream) |
| 最新バージョン | RPM v4 package format (RPM 4.20.x, 2024); RPM v6 format in development |
| オープンスタンダード | はい · ロイヤリティフリー |
| 仕様書 | rpm-software-management.github.io |
RPM の変換
コミュニティ Q&A
ユーザーからの質問まだ質問はありません。RPM ファイルについて最初の質問をしてみましょう。
よくある質問
Linux で .rpm ファイルをインストールするにはどうすればよいですか?
sudo dnf install ./file.rpm、openSUSE の場合: sudo zypper install ./file.rpm を実行します。これらは依存関係を自動的に解決します。低レベルの sudo rpm -ivh file.rpm も機能しますが、不足している依存関係は取得されません。Windows で .rpm ファイルを開くにはどうすればよいですか?
Ubuntu/Debian に .rpm をインストールするにはどうすればよいですか?
sudo alien -i file.rpm で変換できますが、同じプログラムのネイティブな .deb、Flatpak、または AppImage を探す方が安全です。RPM と DEB の違いは何ですか?
インストールせずに .rpm の中身を確認するにはどうすればよいですか?
rpm -qlp file.rpm でファイルリストを表示し、rpm -qip file.rpm で情報を表示します。または rpm2cpio file.rpm | cpio -idmv を実行して抽出します。Windows では 7-Zip で開きます。RPM のインストール時に «依存関係の失敗» が発生するのはなぜですか?
rpm コマンドの代わりに dnf install ./file.rpm(または zypper)を使用してください。これにより、パッケージマネージャーがリポジトリから依存関係を自動的にプルします。