Linux / コマンド / dnf - RPM 系列でのパッケージ・リポジトリ管理
dnfは、Fedora・RHEL系およびRocky Linux・AlmaLinuxでリポジトリパッケージを検索・インストール・削除・アップグレードするコマンドです。ディストリビューションやバージョンによってDNFの実装やサポートオプションが異なる場合があります。
DNFは配布元のリポジトリ情報を使って、パッケージ候補と依存関係を計算します。RPM(RPM Package Manager)形式のパッケージを扱い、RHELはRed Hat Enterprise Linuxの略です。installは必要な依存パッケージも処理します。ローカルファイルやデータベースを直接扱うrpmコマンドとは役割が異なります。
基本的な文法
dnf [オプション] コマンド [パッケージ ...]
インストールされている実装とオプションは、配布版によって異なる場合があります。man dnfで現在のシステムの説明を確認してください。
使用例
パッケージ検索と情報確認
パッケージ名・説明とリポジトリ候補を確認します。
dnf search nginx
dnf info nginx
パッケージのインストール
使用するリポジトリと依存関係の変更一覧を確認して承認します。変更前の計画だけ確認するにはsudo dnf --assumeno install nginxも使えますが、情報取得のため通信やキャッシュ更新は起こり得ます。
sudo dnf install nginx
アップデートの確認
次はDNF4の更新候補確認です。インストールは行いません。DNF5ではcheck-upgradeとして説明されており、手元のdnf --versionとヘルプで実装に合うコマンドを確認します。
dnf check-update
パッケージの出所とバージョンを確認する
dnf infoはパッケージのバージョン、アーキテクチャ、リポジトリと説明を表示します。インストール前の候補とインストール済みバージョンを区別して読む必要があります。
dnf info bash
出力で確認する項目の例:
Name : bash
Version : ...
Architecture : x86_64
Repository : ...
実際の値はディストリビューションやリポジトリによって異なります。DNF4のdnf check-updateは、更新候補があれば終了コード100、なければ0、エラーなら1です。候補が出ても依存関係などの制約でupgradeが適用できるとは限りません。自動化では100を一般的な処理失敗と混同しないようにします。
主なオプションと形式
| オプション・形式 | 説明 |
|---|---|
search / info |
パッケージを探すか詳細情報を表示します。 |
install / remove |
パッケージをインストールまたは削除します。 |
check-update / upgrade |
アップデート可能かどうかを確認するか、適用します。 |
repolist |
有効になっているリポジトリを確認します。 |
history |
以前のパッケージトランザクションを確認します。 |
使用する際の注意点
dnf upgradeは実行中のサービスやカーネルなどを変更する可能性があるため、変更リストと再起動の必要性を確認してください。--allowerasingは競合解決のため既存のパッケージを削除することがあります。リポジトリを任意に追加したり検証をオフにせず、インストール済みバージョンのdnf helpでオプションの違いを確認してください。
よくある質問
dnfとrpmのどちらのコマンドでインストールしますか?
リポジトリの依存関係まで管理する一般的なインストール・アップデートにはdnfが適しています。rpmはローカルパッケージファイルやインストールデータベースを直接扱う場合に使用します。
公式ドキュメント
オプションの正確な動作や実装ごとの差異はdnf関連の公式ドキュメントで確認できます。




