dnfパッケージ管理 - Fedora/RHEL系の最新ツール

dnfパッケージ管理 - Fedora/RHEL系の最新ツール

この記事で解決できること

  • Fedora/RHEL 系で dnf を使ったパッケージ管理の基本操作が身につく
  • yum との違いと dnf に移行すべき理由が分かる
  • モジュールストリームなど dnf 固有の機能が活用できる

結論(実務の型)

  • インストール: sudo dnf install [パッケージ名]
  • 更新: sudo dnf update(全体)/ sudo dnf update [パッケージ名](個別)
  • 削除: sudo dnf remove [パッケージ名]
  • トラブル時: dnf history undo [id] でロールバック可能

dnf とは何か?

dnf(Dandified YUM)は yum の後継パッケージマネージャーで、Fedora 22 以降と RHEL 8 / CentOS 8 以降で標準採用されている。依存解決が高速で、メモリ効率も yum より優れる。

対応ディストリビューション: Fedora / RHEL 8+ / CentOS 8+ / AlmaLinux / Rocky Linux / Oracle Linux

Ubuntu/Debian 系は対象外

Ubuntu/Debian 系は apt を使う。dnf は RPM ベースのディストリビューション専用。 apt/yum の基本はこちら

パッケージのインストール・削除

インストールと削除は dnf の最も基本的な操作。

インストールする

sudo dnf install vim

複数パッケージを一度にインストール:

sudo dnf install vim git curl

ローカルの RPM ファイルからインストール:

sudo dnf install ./package.rpm

削除する

sudo dnf remove vim

remove は対象パッケージに依存する他のパッケージも削除する。単体削除のみ行いたい場合は --no-autoremove を付ける。

依存関係として残った不要パッケージを掃除:

sudo dnf autoremove

パッケージの更新

定期的な更新はセキュリティの基本。

全パッケージを更新する

sudo dnf update

dnf upgradednf update の別名で動作は同じ。

特定パッケージだけ更新する

sudo dnf update vim

セキュリティアップデートのみ適用する

sudo dnf update --security

更新可能なパッケージを確認する(実行しない)

dnf check-update

パッケージの検索と情報確認

インストール前にパッケージを調べる方法。

キーワードで検索する

dnf search nginx

パッケージ名と概要の両方をキーワード検索:

dnf search all nginx

パッケージの詳細情報を確認する

dnf info nginx

バージョン・アーキテクチャ・サイズ・リポジトリ・説明などを表示する。

インストール済みパッケージを一覧表示する

dnf list installed

利用可能な(未インストール含む)パッケージ一覧:

dnf list available

特定パッケージの状態確認:

dnf list vim

コマンドがどのパッケージから提供されるか調べる

dnf provides /usr/bin/vim

パッケージグループの管理

関連パッケージをまとめてインストールできる。

利用可能なグループを表示する

dnf group list

グループをインストールする

sudo dnf group install "Development Tools"

グループの内容を確認する

dnf group info "Development Tools"

リポジトリの管理

パッケージの提供元(リポジトリ)を管理する方法。

有効なリポジトリを一覧表示する

dnf repolist

無効なものも含めて表示:

dnf repolist --all

EPEL リポジトリを追加する(RHEL/CentOS 系)

sudo dnf install epel-release

リポジトリを一時的に無効にしてインストールする

sudo dnf install [package] --disablerepo=epel

キャッシュの管理

ダウンロードキャッシュを管理してディスクを節約する。

sudo dnf clean all

パッケージリストのみ更新(キャッシュは保持):

sudo dnf makecache

履歴と更新のロールバック

dnf の強力な機能の一つが操作履歴とロールバック。

操作履歴を確認する

dnf history

特定の操作の詳細を確認する

dnf history info 5

操作をロールバック(取り消す)

sudo dnf history undo 5

アップデート後に問題が発生した場合、dnf history undo で元の状態に戻せる。本番環境での作業で特に有用。

モジュールストリーム

モジュールストリームは dnf 固有の機能で、同一パッケージの複数バージョンを切り替えて使える仕組み。

利用可能なモジュールを一覧表示する

dnf module list

モジュールの詳細を確認する

dnf module info nodejs

特定バージョンのモジュールを有効化してインストールする

sudo dnf module enable nodejs:18
sudo dnf install nodejs

モジュールストリームを切り替える

sudo dnf module reset nodejs
sudo dnf module enable nodejs:20
sudo dnf distro-sync

モジュールストリームを切り替える際は dnf distro-sync を実行して依存関係を整合させること。

yum との主な違い

操作 yum dnf
インストール yum install dnf install
削除 yum remove dnf remove
更新 yum update dnf update
検索 yum search dnf search
不要パッケージ削除 yum autoremove dnf autoremove
モジュール管理 非対応 dnf module
ロールバック 限定的 dnf history undo

RHEL 7 以前の yum コマンドは、RHEL 8 以降では互換シムとして動作するが、実体は dnf を呼び出している。

次に読む