dnf / yum
『dnf』は RHEL・AlmaLinux・CentOS Stream などの RPM 系 Linux ディストリビューションの標準パッケージ管理ツールです。dnf install でパッケージをインストールし、dnf update でシステム全体を更新します。dnf remove でアンインストールでき、dnf autoremove で不要な依存パッケージも一括削除できます。EPEL(Extra Packages for Enterprise Linux)リポジトリを有効化すると、公式リポジトリにない多くのパッケージも利用できるようになります。なお、『yum』は RHEL 7 以前の旧コマンドで、RHEL 8 以降は『dnf』が標準となっています。
構文
# -----------------------------------------------
# パッケージリストの更新
# -----------------------------------------------
# dnf check-update
# → リポジトリのパッケージリストを確認し、更新可能なパッケージを表示します
# → 実際の更新は行いません
# 例: sudo dnf check-update
# -----------------------------------------------
# パッケージのインストール
# -----------------------------------------------
# dnf install {パッケージ名} [{パッケージ名} ...]
# → 指定したパッケージをインストールします
# → 依存パッケージも自動で解決されます
# → 複数のパッケージを空白区切りで同時指定できます
# 例: sudo dnf install nginx
# 例: sudo dnf install nginx php-fpm
# dnf install {パッケージ名}-{バージョン}
# → 特定バージョンを指定してインストールします
# 例: sudo dnf install nginx-1.24.0
# -----------------------------------------------
# パッケージの更新
# -----------------------------------------------
# dnf update
# → インストール済みパッケージをすべて最新版に更新します
# → 依存関係の変化により古いパッケージが置き換えられることがあります
# dnf update {パッケージ名}
# → 指定したパッケージのみを更新します
# 例: sudo dnf update nginx
# -----------------------------------------------
# パッケージの削除
# -----------------------------------------------
# dnf remove {パッケージ名}
# → パッケージを削除します
# dnf autoremove
# → 他のパッケージが依存しなくなった孤立パッケージをまとめて削除します
# -----------------------------------------------
# パッケージの検索・情報確認
# -----------------------------------------------
# dnf search {キーワード}
# → キーワードでパッケージ名と説明文を検索します
# dnf info {パッケージ名}
# → パッケージの詳細情報(バージョン・依存関係など)を表示します
# dnf list installed
# → インストール済みパッケージの一覧を表示します
# dnf list available
# → リポジトリから入手可能なパッケージの一覧を表示します
# -----------------------------------------------
# リポジトリの管理(EPEL)
# -----------------------------------------------
# dnf install epel-release
# → EPEL(Extra Packages for Enterprise Linux)リポジトリを有効化します
# → 公式リポジトリにない多くのパッケージが利用可能になります
# 例: sudo dnf install epel-release
# dnf repolist
# → 有効なリポジトリの一覧を表示します
# dnf config-manager --enable {リポジトリID}
# → 指定したリポジトリを有効化します
# dnf config-manager --disable {リポジトリID}
# → 指定したリポジトリを無効化します
構文一覧
| 操作 | コマンド | 説明 |
|---|---|---|
| 更新可能パッケージの確認 | dnf check-update | 更新可能なパッケージの一覧を表示します。実際のインストールは行わずに確認だけできます。 |
| パッケージのインストール | dnf install {パッケージ名} | 指定したパッケージをインストールします。依存パッケージも自動で解決されます。 |
| 全パッケージの更新 | dnf update | インストール済みのすべてのパッケージを最新版に更新します。 |
| 特定パッケージの更新 | dnf update {パッケージ名} | 指定したパッケージのみを最新版に更新します。 |
| パッケージの削除 | dnf remove {パッケージ名} | パッケージを削除します。依存関係も考慮して安全に削除されます。 |
| 孤立パッケージの削除 | dnf autoremove | 他のパッケージが依存しなくなった不要なパッケージを一括削除します。 |
| パッケージの検索 | dnf search {キーワード} | パッケージ名と説明文からキーワードで検索します。 |
| パッケージ情報の表示 | dnf info {パッケージ名} | バージョン・依存関係・説明など詳細情報を表示します。 |
| インストール済み一覧 | dnf list installed | 現在インストールされているすべてのパッケージを一覧表示します。 |
| 利用可能パッケージの一覧 | dnf list available | リポジトリから入手可能なパッケージを一覧表示します。 |
| 特定バージョンの指定 | dnf install {パッケージ}-{バージョン} | バージョンを固定してインストールします。動作確認済みのバージョンを維持したい場合に使用します。 |
| EPELの有効化 | dnf install epel-release | EPEL リポジトリを有効化します。公式リポジトリにない多くのパッケージが利用可能になります。 |
| リポジトリ一覧の表示 | dnf repolist | 有効化されているリポジトリの一覧を表示します。dnf repolist all で無効なリポジトリも確認できます。 |
| リポジトリの有効化 | dnf config-manager --enable {リポジトリID} | 指定したリポジトリを有効化します。dnf-plugins-core パッケージが必要です。 |
| リポジトリの無効化 | dnf config-manager --disable {リポジトリID} | 指定したリポジトリを無効化します。削除せずに一時的に使用を停止できます。 |
| キャッシュの削除 | dnf clean all | ダウンロードしたパッケージのキャッシュをすべて削除します。ディスク容量を節約できます。 |
使用例
# ----------------------------------------------- # システムを最新状態に更新する # ----------------------------------------------- # 更新可能なパッケージを事前に確認します sudo dnf check-update # インストール済みパッケージをすべて更新します sudo dnf update
実行するコマンドは次の通りです。
$ sudo dnf check-update Last metadata expiration check: 0:05:12 ago on Wed Mar 25 10:00:00 2026. bash.x86_64 5.1.8-6.el9_1 baseos glibc.x86_64 2.34-60.el9_2.4 baseos openssl.x86_64 3.0.7-25.el9_3 baseos
Nginx をインストールして動作確認する
# ----------------------------------------------- # Nginx のインストールと確認 # ----------------------------------------------- # Nginx をインストールします sudo dnf install nginx # インストールされたバージョンを確認します nginx -v # Nginx を起動して自動起動も有効化します sudo systemctl enable --now nginx
実行するコマンドは次の通りです。
$ nginx -v nginx version: nginx/1.20.1
EPEL リポジトリを有効化して追加パッケージをインストールする
# ----------------------------------------------- # EPEL を有効化して htop をインストールします # (htop は EPEL に収録されており、標準リポジトリにはありません) # ----------------------------------------------- # まず EPEL リポジトリを有効化します sudo dnf install epel-release # EPEL が追加されたことを確認します dnf repolist # htop をインストールします(桐生一馬の活動状況を監視するイメージで) sudo dnf install htop # htop を起動してプロセスを確認します htop
実行するコマンドは次の通りです。
$ dnf repolist repo id repo name appstream AlmaLinux 9 - AppStream baseos AlmaLinux 9 - BaseOS epel Extra Packages for Enterprise Linux 9 - x86_64 extras AlmaLinux 9 - Extras
不要なパッケージをきれいに削除する
# ----------------------------------------------- # パッケージの削除と後片付け # ----------------------------------------------- # apache httpd を削除します(nginx に移行した後の後片付けです) sudo dnf remove httpd # httpd のインストール時に追加された孤立パッケージも削除します sudo dnf autoremove # キャッシュに溜まったダウンロード済みパッケージファイルを削除します sudo dnf clean all # httpd が削除されたことを確認します dnf list installed | grep httpd
実行するコマンドは次の通りです。
$ dnf list installed | grep httpd (何も表示されなければ削除完了です)
利用可能なバージョンを確認して特定バージョンをインストールする
# ----------------------------------------------- # バージョンを確認して指定インストールします # ----------------------------------------------- # インストール可能なバージョンの一覧を確認します dnf list --showduplicates nginx
実行するコマンドは次の通りです。
$ dnf list --showduplicates nginx Last metadata expiration check: 0:10:45 ago on Wed Mar 25 10:00:00 2026. Available Packages nginx.x86_64 1:1.20.1-14.el9_2.1 appstream nginx.x86_64 1:1.22.1-3.el9 appstream
実装例は次の通りです。
# バージョンを指定してインストールします sudo dnf install nginx-1.20.1 # バージョンが固定されていることを確認します nginx -v
実行するコマンドは次の通りです。
$ nginx -v nginx version: nginx/1.20.1
概要
『dnf』は RHEL・AlmaLinux・Rocky Linux・CentOS Stream などの RPM 系 Linux の標準パッケージ管理ツールです。旧ツールである『yum』(Yellowdog Updater Modified)の後継として RHEL 8 から正式採用されており、依存関係解決の高速化・メモリ使用量の削減・Python 3 への完全移行が図られています。RHEL 7 以前の環境では yum コマンドを使用しますが、基本的な操作(install / update / remove)のオプションは dnf とほぼ共通です。EPEL リポジトリ(epel-release)を有効化すると、公式リポジトリに収録されていない 『htop』や『redis』、『certbot』など多くのパッケージが利用可能になります。Debian・Ubuntu 系のパッケージ管理については apt のページを参照してください。
記事の間違いや著作権の侵害等ございましたらお手数ですがこちらまでご連絡頂ければ幸いです。