こういった疑問を持つ方は多いです。CentOS7までyumを使っていた方が、Rocky Linux9やRHEL9に移行した際によく混乱するポイントです。
この記事では、dnf/yumコマンドの対応関係と実践的な使い方を解説します。パッケージのインストール・更新・削除・検索、リポジトリ管理、dnf historyまで体系的にカバーします。
・RHEL8以降はdnfがメイン。yumコマンドはdnfへのシンボリックリンクで互換動作する
・dnf install / dnf update / dnf remove の3コマンドが基本操作
・dnf history で過去の操作を確認し、dnf history undo で元に戻せる
・リポジトリ追加は dnf config-manager --add-repo で行う(RHEL9/Rocky9対応)
でも安心してください。プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
yumからdnfへ:何が変わったのか
yum(Yellow dog Updater Modified)はCentOS5~7時代に使われていたパッケージ管理コマンドです。RHEL8からはdnf(Dandified YUM)に置き換わりました。Rocky Linux9/RHEL9でyumコマンドを実行しても動作するのは、yumがdnfへのシンボリックリンクになっているためです。
# Rocky Linux9でyumの実体を確認 [root@server ~]# ls -la /usr/bin/yum lrwxrwxrwx. 1 root root 5 1月 1 00:00 2024 /usr/bin/yum -> dnf-3 # どちらを実行しても同じ結果 [root@server ~]# dnf --version 4.14.0 Installed: dnf-0:4.14.0-9.el9.noarch at 2023-11-14 00:00 Built : Rocky Enterprise Software Foundation at 2023-11-09 16:26
1. yumとdnfの主な違い
| 項目 | yum(CentOS7以前) | dnf(RHEL8/Rocky9以降) |
|---|---|---|
| 依存解決 | SAT Solverで依存関係解決(時に不安定) | libsolvを使用。より正確で高速 |
| 設定ファイル | /etc/yum.conf / /etc/yum.repos.d/ | /etc/dnf/dnf.conf / /etc/yum.repos.d/(互換) |
| 履歴管理 | yum history(限定的) | dnf history(より詳細でundo可能) |
| プラグイン | yum-utilsが別パッケージ | dnf-plugins-coreが標準搭載 |
| モジュール管理 | 未対応 | dnf module で複数バージョン切り替え可能 |
dnf/yumの設定ファイル
1. /etc/dnf/dnf.conf(メイン設定)
[root@server ~]# cat /etc/dnf/dnf.conf [main] gpgcheck=1 installonly_limit=3 clean_requirements_on_remove=True best=True skip_if_unavailable=False
| 設定項目 | 意味 |
|---|---|
| gpgcheck=1 | パッケージのGPG署名を検証する(セキュリティ上必須) |
| installonly_limit=3 | kernelなど同時にインストールできるバージョン数の上限 |
| clean_requirements_on_remove=True | パッケージ削除時に不要な依存パッケージも削除する |
| best=True | 利用可能な最新バージョンをインストールする |
2. /etc/yum.repos.d/(リポジトリ設定)
リポジトリの設定ファイルはdnfでも引き続き/etc/yum.repos.d/に保存されます。[root@server ~]# ls /etc/yum.repos.d/ rocky-addons.repo rocky-devel.repo rocky-extras.repo rocky.repo # リポジトリ設定ファイルの内容確認 [root@server ~]# cat /etc/yum.repos.d/rocky.repo [baseos] name=Rocky Linux $releasever - BaseOS mirrorlist=https://mirrors.rockylinux.org/mirrorlist?arch=$basearch&repo=BaseOS-$releasever #baseurl=http://dl.rockylinux.org/$contentdir/$releasever/BaseOS/$basearch/os/ gpgcheck=1 enabled=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-Rocky-9
基本コマンド:インストール・更新・削除
1. パッケージをインストールする(dnf install)
# 書式 dnf install パッケージ名 # Apacheをインストール [root@server ~]# dnf install httpd メタデータの期限切れの確認は、0:05:12 時間前の 2026年04月07日 09時00分00秒 に実施しました。 依存関係が解決しました。 ==================================================================================================== パッケージ アーキテクチャー バージョン リポジトリ サイズ ==================================================================================================== インストール中: httpd x86_64 2.4.57-11.el9 appstream 48 k 依存関係のインストール中: apr x86_64 1.7.0-12.el9 appstream 124 k apr-util x86_64 1.6.1-23.el9 appstream 95 k ... インストール済み: httpd-2.4.57-11.el9.x86_64 完了しました! # -yオプションで確認プロンプトをスキップ [root@server ~]# dnf install -y wget
2. アップデートが必要なパッケージを確認する(dnf check-update)
[root@server ~]# dnf check-update メタデータの期限切れの確認は、0:05:12 時間前の 2026年04月07日 09時00分00秒 に実施しました。 ImageMagick.x86_64 6.9.13-6.el9 appstream NetworkManager.x86_64 1:1.44.0-6.el9 baseos openssl.x86_64 1:3.0.7-27.el9 baseos openssl-libs.x86_64 1:3.0.7-27.el9 baseos
3. 特定のパッケージをアップデートする(dnf update)
# 特定パッケージをアップデート [root@server ~]# dnf update openssl メタデータの期限切れの確認は、0:05:12 時間前に実施しました。 依存関係が解決しました。 ==================================================================================================== パッケージ アーキテクチャー バージョン リポジトリ サイズ ==================================================================================================== アップグレード中: openssl x86_64 1:3.0.7-27.el9 baseos 1.2 M openssl-libs x86_64 1:3.0.7-27.el9 baseos 2.1 M ... # システム全体をアップデート [root@server ~]# dnf update # または [root@server ~]# dnf upgrade
4. パッケージを削除する(dnf remove)
# パッケージを削除 [root@server ~]# dnf remove httpd 依存関係が解決しました。 ==================================================================================================== パッケージ アーキテクチャー バージョン リポジトリ サイズ ==================================================================================================== 削除中: httpd x86_64 2.4.57-11.el9 @appstream 4.9 M ...
パッケージの検索・情報確認
1. パッケージを検索する(dnf search)
# キーワードでパッケージを検索 [root@server ~]# dnf search expect ====================================== N/S マッチ: expect ====================================== expect.x86_64 : A program-script interaction and testing utility expect-devel.x86_64 : A program-script interaction and testing utility pexpect.noarch : Pure Python Expect-like module # すべてのフィールドで検索する(より広い範囲) [root@server ~]# dnf search all expect
2. パッケージ情報を確認する(dnf info)
# インストール済みパッケージの情報確認 [root@server ~]# dnf info httpd メタデータの期限切れの確認は、0:05:12 時間前に実施しました。 インストール済みパッケージ 名前 : httpd バージョン : 2.4.57 リリース : 11.el9 アーキテクチャー: x86_64 サイズ : 4.9 M ソース : httpd-2.4.57-11.el9.src.rpm リポジトリ : @System より : appstream 概要 : Apache HTTP Server URL : https://httpd.apache.org/ ライセンス : ASL 2.0 説明 : Apache HTTPサーバーは、強力、効率的、そして拡張可能な : ウェブサーバーです。
3. インストール済みを確認する(dnf list installed)
# 特定パッケージがインストール済みか確認 [root@server ~]# dnf list installed httpd インストール済みパッケージ httpd.x86_64 2.4.57-11.el9 @appstream # インストール済みの全パッケージを一覧表示 [root@server ~]# dnf list installed # 利用可能な全パッケージ(インストール済み+未インストール)を表示 [root@server ~]# dnf list all
リポジトリの管理
1. 現在有効なリポジトリを確認する(dnf repolist)
[root@server ~]# dnf repolist リポジトリー id リポジトリー名 appstream Rocky Linux 9 - AppStream baseos Rocky Linux 9 - BaseOS extras Rocky Linux 9 - Extras # 無効なリポジトリも含めて表示 [root@server ~]# dnf repolist all
2. EPELリポジトリを追加する
RHEL/Rocky LinuxのデフォルトリポジトリにないパッケージはEPEL(Extra Packages for Enterprise Linux)で提供されていることがあります。# RHEL9/Rocky9でEPELを有効にする [root@server ~]# dnf install epel-release # または [root@server ~]# dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm # 追加後に確認 [root@server ~]# dnf repolist | grep epel epel Extra Packages for Enterprise Linux 9 - x86_64
3. dnf config-managerでリポジトリを管理する
# リポジトリを追加(.repoファイルを自動作成) [root@server ~]# dnf config-manager --add-repo https://example.com/myrepo.repo # リポジトリを一時的に有効化(installと組み合わせる) [root@server ~]# dnf install --enablerepo=epel パッケージ名 # リポジトリを永続的に無効化 [root@server ~]# dnf config-manager --set-disabled epel # リポジトリを永続的に有効化 [root@server ~]# dnf config-manager --set-enabled epel
グループインストール
RPMパッケージはいくつかのグループにまとめられています。dnfではグループ単位でインストールができます。# 利用可能なグループを表示 [root@server ~]# dnf grouplist メタデータの期限切れの確認は、0:05:12 時間前に実施しました。 利用可能な環境グループ: サーバー 最小限のインストール ワークステーション ... 利用可能なグループ: 開発ツール セキュリティツール ... # 「開発ツール」グループをインストール [root@server ~]# dnf groupinstall "開発ツール" # グループの含まれるパッケージを確認 [root@server ~]# dnf groupinfo "開発ツール" グループ: 開発ツール 説明: A basic development environment. 必須パッケージ: binutils gcc gcc-c++ glibc-devel ... 任意パッケージ: cmake ctags ...
dnf history:操作履歴と取り消し
dnfの強力な機能の一つがhistoryコマンドです。過去の操作履歴を確認し、必要に応じて取り消すことができます。1. 操作履歴を確認する
[root@server ~]# dnf history ID | コマンドライン | 日付と時間 | 操作 | 変更数 ------------------------------------------------------------------------------------- 5 | install httpd | 2026-04-07 09:00 | インストール | 8 4 | update openssl | 2026-04-06 15:30 | アップグレード | 2 3 | install epel-release | 2026-04-06 14:00 | インストール | 1 2 | install wget | 2026-04-06 10:00 | インストール | 1 1 | update | 2026-04-06 09:00 | アップグレード | 156 # 特定IDの詳細を確認 [root@server ~]# dnf history info 5 トランザクション ID : 5 開始時刻 : 2026-04-07 09:00:00 終了時刻 : 2026-04-07 09:00:45 インストール済み : httpd-2.4.57-11.el9.x86_64
2. 操作を取り消す(dnf history undo)
# ID=5のインストール操作を取り消す(httpdを削除) [root@server ~]# dnf history undo 5 依存関係が解決しました。 ... 削除中: httpd-2.4.57-11.el9.x86_64 完了しました! # 最後の操作を取り消す場合 [root@server ~]# dnf history undo last
キャッシュ管理とその他の便利なコマンド
# キャッシュをクリアする(リポジトリメタデータの更新トラブル時に有効) [root@server ~]# dnf clean all 12 ファイルを削除しました。 # メタデータキャッシュを更新する [root@server ~]# dnf makecache # パッケージが提供するファイルを検索する [root@server ~]# dnf provides /usr/bin/python3 python3-3.9.18-3.el9.x86_64 : Interpreter of the Python programming language # 特定のパッケージが提供するファイル一覧を表示する [root@server ~]# dnf repoquery -l httpd | head -10 /etc/httpd /etc/httpd/conf /etc/httpd/conf.d /etc/httpd/conf.modules.d /usr/lib/systemd/system/httpd.service
トラブルシュート:よくあるエラーと対処法
1. 「Error: Failed to download metadata for repo」
[root@server ~]# dnf update エラー: リポジトリー 'extras' のメタデータのダウンロードに失敗しました
[root@server ~]# dnf clean all && dnf update
2. 「GPG key retrieval failed」
[root@server ~]# dnf install パッケージ名 ... GPGキーの取得に失敗しました: https://...
# GPGキーをインポート [root@server ~]# rpm --import https://example.com/RPM-GPG-KEY-example
3. 「Nothing to do」でインストールできない
[root@server ~]# dnf install パッケージ名 Nothing to do.
dnf searchで正しいパッケージ名を確認してください。本記事のまとめ
| やりたいこと | コマンド |
|---|---|
| パッケージをインストールする | dnf install パッケージ名 |
| 確認プロンプトなしでインストール | dnf install -y パッケージ名 |
| パッケージをアップデートする | dnf update パッケージ名 |
| システム全体をアップデートする | dnf update |
| パッケージを削除する | dnf remove パッケージ名 |
| パッケージを検索する | dnf search キーワード |
| パッケージ情報を確認する | dnf info パッケージ名 |
| インストール済みか確認する | dnf list installed パッケージ名 |
| 有効なリポジトリを確認する | dnf repolist |
| グループをインストールする | dnf groupinstall "グループ名" |
| 操作履歴を確認する | dnf history |
| 操作を取り消す | dnf history undo ID |
| キャッシュをクリアする | dnf clean all |
| ファイルを提供するパッケージを調べる | dnf provides /usr/bin/コマンド名 |
dnf/yumを含むLinuxサーバー管理を体系的に学びませんか?
パッケージ管理はサーバー構築・運用の基本中の基本です。
ネットの切れ端の情報をコピペするだけでなく、現場で通用する安全なLinuxサーバー構築の「型」を体系的に身につけたい方へ、『Linuxサーバー構築入門マニュアル(図解60P)』を完全無料でプレゼントしています。
「独学の時間がもったいない」「プロから直接、現場の技術を最短で学びたい」という本気の方には、2日で実務レベルのスキルが身につく【初心者向けハンズオンセミナー】も開催しています。
3,100名以上が実践した「型」を無料で公開中
プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
その「型」を図解60Pにまとめた入門マニュアルを、完全無料でプレゼントしています。
登録10秒/合わなければ解除3秒 / 詳細はこちら

無料メルマガで学習を続ける
Linuxの実践スキルをメールで毎週お届け。
登録は1分、解除もいつでも可。
登録無料・いつでも解除できます