
新Linux入門|RPMとDNFの違いを理解しよう!パッケージ管理の仕組み
今回は、AlmaLinux 9.6を使ううえで欠かせない「パッケージ管理ツール」について、少し掘り下げてみましょう😊
Linuxでは、ソフトウェアを効率的にインストール・更新・削除するために「RPM」や「DNF」といった仕組みが使われています。
でも、「どちらも同じようなものじゃないの?」と思ったこと、ありませんか?🤔
実はこの2つ、役割が違うんです!
RPMは“低レベルなパッケージ管理ツール”、DNFは“高レベルな統合管理ツール”として機能します。

📦 RPMとDNFの概要
まずは2つの違いをざっくり比べてみましょう👇
| 項目 | RPM (Red Hat Package Manager) | DNF (Dandified YUM) |
|---|---|---|
| 目的 | パッケージの直接管理 | リポジトリを利用した自動管理 |
| 依存関係の解決 | 手動で行う必要あり | 自動で解決してくれる |
| インターフェース | コマンドラインのみ | CLIベース、より分かりやすい操作体系 |
| ソース | ローカルの.rpmファイル | オンラインリポジトリ |
| 管理範囲 | 単体パッケージの操作 | システム全体の統合管理 |
RPMが“基礎ツール”で、DNFが“パッケージ管理の自動アシスタント”と考えるとわかりやすいですね😄
⚙️ RPM:パッケージを直接扱うツール
RPM(Red Hat Package Manager)は、.rpmファイルを直接操作するためのツールです。
シンプルで強力ですが、依存関係を自分で解決する必要があります。
コマンド書式
[root@AlmaLinux ~]# rpm [オプション] パッケージ名.rpm主なオプション
| オプション | 説明 |
|---|---|
| -i | パッケージを新規インストール |
| -U | 既存パッケージをアップグレード |
| -e | パッケージをアンインストール |
| -q | インストール済みパッケージを照会 |
| -qa | 全インストール済みパッケージを表示 |
| -qi | パッケージの詳細情報を表示 |
使用例
[root@AlmaLinux ~]# rpm -ivh hwloc-libs-2.4.1-5.el9.x86_64.rpm
警告: hwloc-libs-2.4.1-5.el9.x86_64.rpm: ヘッダー V4 RSA/SHA256 Signature、鍵 ID 350d275d: NOKEY
Verifying... (################################# [100%]
準備しています... ################################# [100%]
更新中 / インストール中...
1:hwloc-libs-2.4.1-5.el9 (################################# [100%]
[root@AlmaLinux ~]# rpm -ivh htop-3.3.0-1.el9.x86_64.rpm
警告: htop-3.3.0-1.el9.x86_64.rpm: ヘッダー V4 RSA/SHA256 Signature、鍵 ID 3228467c: NOKEY
Verifying... (################################# [100%]
準備しています... ################################# [100%]
更新中 / インストール中...
1:htop-3.3.0-1.el9 (###########################これでローカルファイルから直接インストール完了!
ただし、依存ライブラリが足りないとエラーになることがあります💦
そのため、手動管理ではちょっと大変な場合もあるんです。
🚀 DNF:RPMをベースにした高機能マネージャ
DNF(Dandified YUM)は、RPMを内部で使いながら、依存関係の自動解決・リポジトリ管理などを行ってくれる便利ツールです✨
つまり、RPMの“手間を減らした進化版”とも言えます。
コマンド書式
[root@AlmaLinux ~]# dnf [サブコマンド] [オプション] パッケージ名主なサブコマンド
| サブコマンド | 説明 |
|---|---|
| install | 新しいパッケージをインストール |
| update | パッケージをアップデート |
| remove | パッケージを削除 |
| search | リポジトリ内から検索 |
| info | パッケージ情報を表示 |
| list | インストール済み・利用可能なパッケージを表示 |
使用例
[root@AlmaLinux ~]# dnf install httpd
メタデータの期限切れの最終確認: 1:40:21 前の 2025年11月24日 00時17分30秒 に実施しました。
依存関係が解決しました。
=========================================================================
パッケージ Arch バージョン リポジトリー サイズ
=========================================================================
インストール:
httpd x86_64 2.4.62-7.el9 appstream 44 k
依存関係のインストール:
almalinux-logos-httpd noarch 90.6-2.el9 appstream 18 k
apr x86_64 1.7.0-12.el9_3 appstream 122 k
apr-util x86_64 1.6.1-23.el9 appstream 94 k
apr-util-bdb x86_64 1.6.1-23.el9 appstream 12 k
httpd-core x86_64 2.4.62-7.el9 appstream 1.4 M
httpd-filesystem noarch 2.4.62-7.el9 appstream 11 k
httpd-tools x86_64 2.4.62-7.el9 appstream 78 k
弱い依存関係のインストール:
apr-util-openssl x86_64 1.6.1-23.el9 appstream 14 k
mod_http2 x86_64 2.0.26-5.el9 appstream 163 k
mod_lua x86_64 2.4.62-7.el9 appstream 58 k
トランザクションの概要
=========================================================================
インストール 11 パッケージ
ダウンロードサイズの合計: 2.0 M
インストール後のサイズ: 6.1 M
これでよろしいですか? [y/N]: yなんとこれだけで、依存関係も自動的に処理してくれます🎉
🧠 RPMとDNFの関係
実は、DNFは内部的にRPMを使っています。
つまり、DNF = RPM + 依存解決 + リポジトリ連携 + ユーザーフレンドリーな機能 なんです。
| 層 | ツール | 主な役割 |
|---|---|---|
| 上位層 | DNF | 自動管理・リポジトリ連携・依存関係処理 |
| 下位層 | RPM | 実際のパッケージインストール処理 |
DNFはRPMを“操作する司令塔”のような存在で、RPM自体がパッケージを展開・登録しています。
📊 出力例で比較
| 操作 | RPMの例 | DNFの例 |
|---|---|---|
| インストール | rpm -ivh htop-3.2.2-1.el9.x86_64.rpm | dnf install htop |
| アップグレード | rpm -Uvh htop-3.2.3-1.el9.x86_64.rpm | dnf update htop |
| 削除 | rpm -e htop | dnf remove htop |
| 情報確認 | rpm -qi htop | dnf info htop |
| 検索 | (対応なし) | dnf search htop |
RPMではファイル指定が必要ですが、DNFはリポジトリ名やパッケージ名だけでOKです🙆♂️
🌟 まとめ
RPMとDNFは、どちらもLinuxのパッケージ管理に欠かせないツールです🐧
- RPM:単体でパッケージを直接管理(シンプルだが手動作業が必要)
- DNF:RPMをベースに、依存関係やリポジトリ管理を自動化
つまり、DNFはRPMの“お助け上位ツール”なんです✨
AlmaLinux 9.6ではDNFをメインで使うのが一般的ですが、RPMの基礎を理解しておくことで、トラブルシューティングにも強くなれます💪
