dnf コマンドとは?
「 yum 」の後継となる「 RPMパッケージ 」を扱うためのパッケージ管理ソフトです。
「 yum 」と同じサブコマンド、オプションが使えます。
AlmaLinux 9 では、「 yum 」も使えますが今後使えなくなる可能性もあるため、「 dnf 」コマンドを使ったほうがいいと思われます。
従来の「 yum 」コマンドから廃止されたものは、「 Changes in DNF CLI compared to dnf 」のサイトで確認できます。
リポジトリ
リポジトリとは、パッケージを集めて保管している場所です。「 dnf repolist 」コマンドで確認できます。
OS にバンドルされているリポジトリの他に、サードパーティのリポジトリを追加できます。
RedHat がエンタープライズ向けなので、提供されるパッケージは古めのバージョンが多いです。その為、最新のパッケージが欲しい場合、サードパーティのリポジトリに頼ることが多いです。
複数のサードパーティリポジトリからパッケージを入れると、依存関係がわからなくなったりするため、基本的には複数のサードパーティリポジトリは使用しません。
EPEL(Extra Packages for Enterprise Linux) とは、サードパーティ製のリポジトリです。CentOS などの公式パッケージに含まれていない有用なソフトウェアを提供しています。
EPEL リポジトリの追加するには、以下のコマンドを実行します。
sudo dnf install epel-release -y
EPEL の設定ファイルは、「 /etc/yum.repos.d/epel.repo 」です。
Alma Linux にインストールした場合、初期設定では、自動で使用しない設定(enabled=0)になっています。
EPEL からパッケージを探したい場合は、以下のようにします。
sudo dnf --enablerepo=epel install [パッケージ名]
RPM は、単体のパッケージ管理ツールで Linux システムにおいて、パッケージ管理や依存関係の解決などに使用されます。
パッケージの更新
インストール済みのパッケージで更新可能なアップデートを確認するには、次のようにコマンドを実行します。
sudo dnf check-update
パッケージを更新するには次のようにコマンドを実行します。
更新するパッケージの依存関係またはパッケージに利用可能な更新がある場合は、合わせて更新されます。
パッケージ名を指定しなければすべてのパッケージが更新されます。
dnf upgrade パッケージ名
パッケージのインストールと削除
# インストール
dnf install パッケージ名
# アンインストール
dnf erase パッケージ名
パッケージの情報
パッケージ名と概要から検索する
dnf search キーワード
パッケージ情報の全てから検索する
dnf search all キーワード
インストール可能なパッケージを表示
sudo dnf list
インストール済みのパッケージをすべて表示する
dnf list --all
インストール済みのパッケージを指定して表示する
dnf list --installed | grep httpd
有効なリポジトリ内で利用可能なパッケージを表示
dnf list --available
パッケージに関しての情報の表示
dnf info パッケージ名
パッケージの削除
sudo dnf remove パッケージ名
アップデート可能なパッケージ一覧を表示
sudo dnf check-update
「 grep 」コマンドを使い、アップデート可能なパッケージを調べることができます。
sudo dnf check-update | grep python
パッケージをアップデートする
指定されたパッケージをアップデートします。パッケージ名を指定しない場合は、すべてのパッケージがアップデートされます。
# パッケージ名を指定してアップデート
sudo dnf update パッケージ名
# すべてのパッケージをアップデート
sudo dnf update
# 複数のパッケージをまとめて指定(python と openssl を指定)
sudo dnf update python openssl
dnf のキャッシュを削除
sudo dnf clean all
パッケージの自動更新
sudo dnf install dnf-cron
リポジトリ
有効な各リポジトリでのパッケージを一覧表示するには、次のようにコマンドを実行します。
dnf repolist
リポジトリーの詳細情報を一覧表示するには次のようにします。
dnf repolist -v
有効、無効にかかわらず、リポジトリを一覧表示するには、次のようにコマンドを実行します。
dnf repolist all