dnf は Fedora / RHEL 8 以降 / CentOS Stream / Rocky Linux / AlmaLinux など Red Hat 系ディストリビューションの標準パッケージ管理コマンドです。「Dandified YUM」の略で、yum の後継として依存関係の自動解決・リポジトリ管理・取引履歴の巻き戻しまでを一貫して行えます。(man7.org, docs.fedoraproject.org)
Fedora 41 以降は内部実装が新しい DNF5 に置き換わっていますが、install / search / remove など主要なサブコマンドの使い方は旧来の dnf(dnf4)と共通です。(dnf5.readthedocs.io)
構文(Syntax)
dnf [GLOBAL_OPTIONS] COMMAND [ARGS]
# 代表的なコマンド
dnf search KEYWORD # パッケージ検索
dnf info PKG # パッケージ情報
dnf list [installed|available] # 一覧
dnf provides PATH|GLOB # どのパッケージがファイルを提供するか
dnf install PKG... # インストール(ローカルの .rpm パス指定も可)
dnf upgrade [PKG...] # 更新
dnf remove PKG... # 削除
dnf autoremove # 不要になった依存パッケージを削除
dnf check-update # 更新の有無だけを確認
dnf history [list|info|undo N] # 取引履歴と巻き戻し
dnf module list|enable MODULE[:STREAM] # モジュールストリーム管理
dnf clean all|metadata|packages # キャッシュ削除
dnf makecache # メタデータを先読み
dnf repolist [all|enabled] # リポジトリ一覧
(dnf history、dnf module、dnf clean などの主要サブコマンドは man ページと DNF5 ドキュメントにまとまっています。)(man7.org, dnf5.readthedocs.io)
主なオプション一覧
| オプション | 説明 | 使用例 |
|---|---|---|
-y, --assumeyes | すべての質問に自動で Yes | sudo dnf -y install htop |
-q, --quiet | 出力を減らす | dnf -q repolist |
-v, --verbose | 冗長出力 | dnf -v info htop |
--enablerepo=REPO | 一時的にリポジトリを有効化 | sudo dnf --enablerepo=epel install htop |
--disablerepo=REPO | 一時的に無効化 | sudo dnf --disablerepo=extras upgrade |
-x, --exclude=PATTERN | 対象から除外 | sudo dnf --exclude=kernel* upgrade |
--setopt=KEY=VAL | 設定を一時上書き | sudo dnf --setopt=timeout=30 upgrade |
--showduplicates | 候補の重複(複数バージョン)も表示 | dnf --showduplicates list htop |
--downloadonly --downloaddir=DIR | インストールせずダウンロードのみ行う | dnf install --downloadonly --downloaddir=. htop |
--allowerasing | 依存解決のため既存パッケージの削除を許可 | sudo dnf --allowerasing install PKG |
--nogpgcheck | GPG 検証を無効化(推奨されない) | sudo dnf --nogpgcheck install pkg.rpm |
設定ファイルは
/etc/dnf/dnf.conf、リポジトリ定義は/etc/yum.repos.d/*.repoで管理します(yum 時代のディレクトリ名をそのまま引き継いでいます)。(man7.org)
実行例
パッケージを検索してからインストール
説明: htop を検索し、情報を確認してから導入します。
コマンド:
dnf search htop
dnf info htop
sudo dnf install -y htop
提供元を調べる(ファイル → パッケージ逆引き)
説明: あるファイルを提供するパッケージを調べます。
コマンド:
dnf provides "*/bin/ls"
出力例(一部抜粋):
coreutils-8.32-41.el9.x86_64 : A set of basic GNU tools commonly used in shell scripts
Repo : baseos
Matched from:
Filename : /usr/bin/ls
一時的に EPEL を有効にして入れる
説明: 標準リポジトリに無いパッケージは EPEL(Extra Packages for Enterprise Linux)を事前登録してから、必要なコマンドの間だけ有効化します。
コマンド:
sudo dnf install -y epel-release
sudo dnf --enablerepo=epel install -y htop
(EPEL の詳細は Fedora 公式ドキュメントを参照してください。)(docs.fedoraproject.org)
ローカルの rpm ファイルをインストールする
説明: ダウンロード済みの .rpm ファイルを直接指定してインストールします(旧 yum の localinstall に相当)。
コマンド:
sudo dnf install -y ./htop-3.3.0-1.el9.x86_64.rpm
(dnf4 では dnf localinstall pkg.rpm という書き方も互換のため残っていますが、Fedora 41+ の DNF5 では localinstall サブコマンドが廃止され、install にパスを渡す方法へ統一されています。)(dnf5.readthedocs.io)
履歴から直前の変更を巻き戻す
説明: 取引番号を確認し、その変更(インストールや更新)を取り消します。
コマンド:
dnf history list
sudo dnf history info 2
sudo dnf history undo 2 -y
モジュールストリームを確認・切り替える
説明: nodejs や php のように複数バージョンが提供されるパッケージ群(モジュール)は、dnf module でストリームを切り替えます。
コマンド:
dnf module list nodejs
sudo dnf module enable -y nodejs:20
sudo dnf install -y nodejs
キャッシュを掃除してメタデータを再取得
説明: リポジトリ切替後やメタデータ破損時に有用です。
コマンド:
sudo dnf clean all
sudo dnf makecache
エラー例:権限不足でインストール
説明: sudo なしでインストールすると失敗します。
コマンド:
dnf install htop
出力例(例):
Error: This command has to be run with superuser privileges (under the root user on most systems).
関連コマンド
yum: RHEL 7 以前の実装。RHEL 8+ では互換コマンドとして dnf を呼び出します。rpm: 低レベル操作(個別.rpmのインストール/照会/検証など)。dnf は内部で rpm を利用して依存関係を解決します。dnf5: Fedora 41+ の既定実装。CLI の使い勝手は概ね共通ですが、細部の違いは移行ガイドを参照してください。(dnf5.readthedocs.io)
備考
- 設定ファイル: 全体設定は
/etc/dnf/dnf.conf、リポジトリは/etc/yum.repos.d/*.repoに分離するのが標準です。(man7.org) - EPEL: 標準リポジトリに無い定番パッケージ(
htopなど)は、epel-releaseを導入して EPEL リポジトリを有効化してから探すのが基本です。(docs.fedoraproject.org) - dnf4 と dnf5 の違い: Fedora 41+ の既定である DNF5 では、
localinstallの廃止など一部サブコマンドが整理されています。RHEL 9/CentOS Stream 9 系は今も dnf4 が標準です。(dnf5.readthedocs.io) - モジュールストリーム: nodejs / php / mariadb などは複数バージョンが並行提供され、
dnf moduleで切り替えます(AppStream 採用ディストリのみ)。
参考
- manページ(
dnf(8)): man7.org(Linux manual pages)。(man7.org) - Fedora 公式ドキュメント(DNF ソフトウェアパッケージマネージャー): (docs.fedoraproject.org)
- DNF5 公式ドキュメント(コマンドリファレンス・DNF4からの移行ガイド): (dnf5.readthedocs.io)
- 関連記事: yum – RPM系ディストリでパッケージを検索・更新・インストールする / rpm – RPM パッケージ管理コマンド

コメント