このページで解説している内容は、以下の YouTube 動画の解説で見ることができます。
Linux基礎:パッケージの管理(DNF)

パッケージの管理(DNF)
Linux の世界では、ソフトウェアの導入や管理を効率的に行うために パッケージ管理システム が使われます。Rocky Linux をはじめとする Red Hat 系ディストリビューションでは、基本的に RPM 形式のパッケージが利用されますが、その依存関係を自動的に解決し、オンラインリポジトリからダウンロード・更新できる仕組みとして DNF(Dandified YUM) が導入されています。
RPM コマンドでは依存関係を手動で解決する必要がありましたが、DNF は必要なパッケージを自動的に取得し、まとめて処理してくれるため、管理者にとって非常に便利です。ここでは、Rocky Linux 上で DNF を使ったパッケージ管理の基本を解説します。

1.DNFとは
1.1. DNFの役割
DNF は RPM パッケージを管理するためのフロントエンドであり、以下のような特徴を持ちます。
| 特徴 | 説明 |
|---|---|
| 依存関係の自動解決 | 必要なパッケージを自動的に検索・インストール |
| オンラインリポジトリ対応 | インターネット上のサーバからパッケージを取得 |
| 更新機能 | システム全体や個別パッケージを簡単にアップデート |
| YUM互換 | 以前の YUM コマンドとも互換性があり、yum と入力しても利用可能 |
RPM コマンドと異なり、パッケージファイルを事前にダウンロードする必要がないのが大きな利点です。
1.2. DNFコマンドの基本書式
dnf サブコマンド [オプション] [パッケージ名]サブコマンドによって、インストール・削除・更新・検索などの動作を指定します。
2.DNFコマンドの基本操作
2.1. 主なサブコマンド
| サブコマンド | 説明 |
|---|---|
| install パッケージ名 | パッケージをインストールする。 |
| remove パッケージ名 | パッケージをアンインストールする。 |
| update パッケージ名 | パッケージをアップデートする。 |
| update | システム全体をアップデートする。 |
| list | パッケージの一覧を表示する。 |
| info パッケージ名 | パッケージの詳細情報を表示する。 |
| search キーワード | キーワードを含むパッケージを検索する。 |
2.2. パッケージのインストール
例として、nginx をインストールする場合の手順です。
インストールするには、rootユーザーで行う必要があります。
[user@rocky9 ~]$ dnf install nginx
エラー: このコマンドはスーパーユーザー特権(大概のシステムではrootユーザー)で実行しなければいけません。
[user@rocky9 ~]$ su -
パスワード:
[root@rocky9 ~]# dnf install nginx
Rocky Linux 9 - BaseOS 4.9 kB/s | 4.1 kB 00:00
Rocky Linux 9 - AppStream 5.3 kB/s | 4.5 kB 00:00
Rocky Linux 9 - Extras 3.4 kB/s | 2.9 kB 00:00
依存関係が解決しました。
================================================================================
パッケージ Arch バージョン リポジトリー サイズ
================================================================================
インストール:
nginx x86_64 2:1.20.1-22.el9_6.3 appstream 36 k
依存関係のインストール:
nginx-core x86_64 2:1.20.1-22.el9_6.3 appstream 566 k
nginx-filesystem noarch 2:1.20.1-22.el9_6.3 appstream 9.6 k
rocky-logos-httpd noarch 90.16-1.el9 appstream 24 k
トランザクションの概要
================================================================================
インストール 4 パッケージ
ダウンロードサイズの合計: 636 k
インストール後のサイズ: 1.8 M
これでよろしいですか? [y/N]: y
パッケージのダウンロード:
(1/4): rocky-logos-httpd-90.16-1.el9.noarch.rpm 293 kB/s | 24 kB 00:00
(2/4): nginx-filesystem-1.20.1-22.el9_6.3.noarc 109 kB/s | 9.6 kB 00:00
(3/4): nginx-1.20.1-22.el9_6.3.x86_64.rpm 397 kB/s | 36 kB 00:00
(4/4): nginx-core-1.20.1-22.el9_6.3.x86_64.rpm 5.6 MB/s | 566 kB 00:00
--------------------------------------------------------------------------------
合計 674 kB/s | 636 kB 00:00
トランザクションを確認しています
トランザクションの確認に成功しました。
トランザクションをテストしています
トランザクションのテストに成功しました。
トランザクションを実行しています
準備中 : 1/1
scriptletの実行中: nginx-filesystem-2:1.20.1-22.el9_6.3.noarch 1/4
インストール中 : nginx-filesystem-2:1.20.1-22.el9_6.3.noarch 1/4
インストール中 : nginx-core-2:1.20.1-22.el9_6.3.x86_64 2/4
インストール中 : rocky-logos-httpd-90.16-1.el9.noarch 3/4
インストール中 : nginx-2:1.20.1-22.el9_6.3.x86_64 4/4
scriptletの実行中: nginx-2:1.20.1-22.el9_6.3.x86_64 4/4
検証中 : nginx-filesystem-2:1.20.1-22.el9_6.3.noarch 1/4
検証中 : rocky-logos-httpd-90.16-1.el9.noarch 2/4
検証中 : nginx-2:1.20.1-22.el9_6.3.x86_64 3/4
検証中 : nginx-core-2:1.20.1-22.el9_6.3.x86_64 4/4
インストール済み:
nginx-2:1.20.1-22.el9_6.3.x86_64
nginx-core-2:1.20.1-22.el9_6.3.x86_64
nginx-filesystem-2:1.20.1-22.el9_6.3.noarch
rocky-logos-httpd-90.16-1.el9.noarch
完了しました!依存関係を含む必要なパッケージが自動的に選択され、まとめてインストールされます。
2.3. パッケージ情報の確認
[root@rocky9 ~]# dnf info nginx
メタデータの期限切れの最終確認: 0:01:31 前の 2025年09月08日 22時14分42秒 に実施しました。
インストール済みパッケージ
名前 : nginx
エポック : 2
バージョン : 1.20.1
リリース : 22.el9_6.3
Arch : x86_64
サイズ : 147 k
ソース : nginx-1.20.1-22.el9_6.3.src.rpm
リポジトリー : @System
repo から : appstream
概要 : A high performance web server and reverse proxy server
URL : https://nginx.org
ライセンス : BSD
説明 : Nginx is a web server and a reverse proxy server for HTTP, SMTP, POP3
: and IMAP protocols, with a strong focus on high concurrency,
: performance and low memory usage.インストール前に詳細情報を確認できるため、安全性やバージョンをチェックできます。
2.4. パッケージの検索
パッケージ名が不明な場合、search サブコマンドで探します。
[root@rocky9 ~]# dnf search dnf
メタデータの期限切れの最終確認: 0:02:07 前の 2025年09月08日 22時14分42秒 に実施しました。
================================= 名前 完全一致: dnf =================================
dnf.noarch : Package manager
=============================== 名前 & 概要 一致: dnf ================================
dnf-data.noarch : Common data and configuration files for DNF
dnf-plugins-core.noarch : Core Plugins for DNF
kpatch-dnf.noarch : kpatch-patch manager plugin for DNF
libdnf-plugin-subscription-manager.x86_64 : Subscription Manager plugin for libdnf
microdnf.x86_64 : Lightweight implementation of DNF in C
osbuild-depsolve-dnf.noarch : Dependency solving support for DNF
(省略)3.システム管理におけるDNFの利用
3.1. システム全体のアップデート
[root@rocky9 ~]# dnf update
メタデータの期限切れの最終確認: 2:57:08 前の 2025年09月07日 22時36分29秒 に実施しました。
依存関係が解決しました。
================================================================================
パッケージ Arch バージョン リポジトリー サイズ
================================================================================
インストール:
kernel x86_64 5.14.0-570.37.1.el9_6 baseos 1.8 M
kernel-devel x86_64 5.14.0-570.37.1.el9_6 appstream 18 M
アップグレード:
kernel-headers x86_64 5.14.0-570.37.1.el9_6 appstream 3.3 M
kernel-tools x86_64 5.14.0-570.37.1.el9_6 baseos 2.1 M
kernel-tools-libs x86_64 5.14.0-570.37.1.el9_6 baseos 1.8 M
python3-perf x86_64 5.14.0-570.37.1.el9_6 appstream 3.2 M
依存関係のインストール:
kernel-core x86_64 5.14.0-570.37.1.el9_6 baseos 18 M
kernel-modules x86_64 5.14.0-570.37.1.el9_6 baseos 39 M
kernel-modules-core x86_64 5.14.0-570.37.1.el9_6 baseos 31 M
削除中:
kernel x86_64 5.14.0-570.17.1.el9_6 @anaconda 0
kernel-core x86_64 5.14.0-570.17.1.el9_6 @anaconda 68 M
kernel-modules x86_64 5.14.0-570.17.1.el9_6 @anaconda 36 M
kernel-modules-core x86_64 5.14.0-570.17.1.el9_6 @anaconda 28 M
トランザクションの概要
================================================================================
インストール 5 パッケージ
アップグレード 4 パッケージ
削除 4 パッケージ
ダウンロードサイズの合計: 117 M
これでよろしいですか? [y/N]: y
パッケージのダウンロード:
(1/9): kernel-5.14.0-570.37.1.el9_6.x86_64.rpm 7.8 MB/s | 1.8 MB 00:00
(省略)セキュリティパッチやバグ修正を適用するため、定期的に実行することが推奨されます。
3.2. パッケージの削除
[root@rocky9 ~]# dnf remove nginx
依存関係が解決しました。
================================================================================
パッケージ Arch バージョン リポジトリー サイズ
================================================================================
削除中:
nginx x86_64 2:1.20.1-22.el9_6.3 @appstream 147 k
未使用の依存関係の削除:
nginx-core x86_64 2:1.20.1-22.el9_6.3 @appstream 1.6 M
nginx-filesystem noarch 2:1.20.1-22.el9_6.3 @appstream 141
rocky-logos-httpd noarch 90.16-1.el9 @appstream 24 k
トランザクションの概要
================================================================================
削除 4 パッケージ
解放された容量: 1.8 M
これでよろしいですか? [y/N]: y
トランザクションを確認しています
トランザクションの確認に成功しました。
トランザクションをテストしています
トランザクションのテストに成功しました。
トランザクションを実行しています
準備中 : 1/1
scriptletの実行中: nginx-2:1.20.1-22.el9_6.3.x86_64 1/4
削除中 : nginx-2:1.20.1-22.el9_6.3.x86_64 1/4
scriptletの実行中: nginx-2:1.20.1-22.el9_6.3.x86_64 1/4
削除中 : rocky-logos-httpd-90.16-1.el9.noarch 2/4
削除中 : nginx-core-2:1.20.1-22.el9_6.3.x86_64 3/4
削除中 : nginx-filesystem-2:1.20.1-22.el9_6.3.noarch 4/4
scriptletの実行中: nginx-filesystem-2:1.20.1-22.el9_6.3.noarch 4/4
検証中 : nginx-2:1.20.1-22.el9_6.3.x86_64 1/4
検証中 : nginx-core-2:1.20.1-22.el9_6.3.x86_64 2/4
検証中 : nginx-filesystem-2:1.20.1-22.el9_6.3.noarch 3/4
検証中 : rocky-logos-httpd-90.16-1.el9.noarch 4/4
削除しました:
nginx-2:1.20.1-22.el9_6.3.x86_64
nginx-core-2:1.20.1-22.el9_6.3.x86_64
nginx-filesystem-2:1.20.1-22.el9_6.3.noarch
rocky-logos-httpd-90.16-1.el9.noarch
完了しました!依存関係に応じて関連パッケージも削除される場合があるため注意が必要です。
まとめ
- DNF は RPM の上位ツール であり、依存関係を自動解決してパッケージ管理を簡略化する。
install・remove・update・info・searchといったサブコマンドを理解することが重要。- RPM コマンドと違い、事前にファイルを用意しなくてもリポジトリから自動的に取得可能。
- システムを安定・安全に保つためには、定期的な
dnf updateの実行が不可欠。
