Linuxのdnfで覚えておきたいコマンドやオプション設定

Linuxのdnfで覚えておきたいコマンドやオプション設定

RedHat系Linuxのパッケージ管理ツール「dnf」では、パッケージのインストールやアンインストール以外にも、さまざまな管理用コマンドが用意されています。また、パッケージのダウンロードやインストールをより快適にするためのオプション設定があります。

そこでここでは、RedHat系のAlmaLinuxを例に、dnfで覚えておきたいコマンドやオプション設定を紹介します。

dnfコマンド

インストール・アンインストール

コマンド説明
dnf install パッケージ名(RPMのURL)パッケージのインストール
dnf remove パッケージ名パッケージのアンインストール
dnf autoremove依存関係でインストールされた不要なパッケージのアンインストール
dnf group install パッケージグループ名パッケージグループのインストール
dnf group remove パッケージグループ名パッケージグループのアンインストール

よく利用するオプションは、次のとおりです。

オプション説明
--enablerepo リポジトリID指定したリポジトリを有効にする
-yプロンプトに自動でYesと応答するときに使用
-x パッケージ名指定したパッケージを除外

更新(アップデート)

コマンド説明
dnf update パッケージ名インストール済パッケージの更新(パッケージを指定しない場合は、インストール済みのすべてのパッケージが対象)
dnf group update パッケージグループ名インストール済パッケージグループの更新 
dnf downgrade パッケージ名インストール済パッケージを直前のバージョンにダウングレード

検索

コマンド説明
dnf list installedインストール済パッケージの検索
dnf list updatesアップデート可能なインストール済パッケージの検索
dnf check-updateアップデート可能なインストール済パッケージの検索($?:更新あり100、更新なし0、エラー1)
dnf search キーワード指定したキーワードを含むパッケージの検索
dnf group listインストール済もしくはインストール可能なパッケージグループ一覧
dnf repolist有効なリポジトリ一覧

メンテンナス

コマンド説明
dnf clean all キャッシュ(ダウンロードしたパッケージやヘッダファイルなど)を削除
dnf historyパッケージのインストールやアンインストールの履歴を表示

dnf.conf

dnf設定ファイルである「dnf.conf」では、さまざまなオプション設定ができますがそのなかでも便利なオプションを紹介します。

パッケージの除外

カーネルや特定のパッケージを更新対象から除外することができ、dnf.confのmainセクションに「exclude = (除外するパッケージ名をカンマ区切りで記述)」と記述します。

たとえば、カーネル関連のパッケージの更新を除外したいときは、以下のように記述します。

# vi /etc/dnf/dnf.conf

[main]
exclude = kernel*

カーネルの保持数を制限

カーネルや特定のパッケージなどの単一パッケージで同時にインストールできるバージョンの数を指定することができ、dnf.confのmainセクションに「installonly_limit = (保持するバージョン数)」と記述します。(デフォルト値は3で、2以上を推奨)

たとえば、保持できるバージョン数を4にしたいときは、以下のように記述します。

# vi /etc/dnf/dnf.conf

[main]
installonly_limit = 4

並列ダウンロード

dnfでパッケージをダウンロードする際の並列ダウンロード数を指定することができ、dnf.confのmainセクションに「max_parallel_downloads = (並列数)」と記述します。(デフォルト値は3で、最大値は20)

たとえば、並列ダウンロード数を10にしたいときは、以下のように記述します。

# vi /etc/dnf/dnf.conf

[main]
max_parallel_downloads = 10

デフォルト値が小さすぎるので10ぐらいに増やしておけば、たくさんのパッケージを更新する際のダウンロードをより効率化(高速化)できるでしょう。

ダウンロード速度の向上

AlmaLinuxは、デフォルトでdnfでパッケージをダウンロードする際、ミラーリストからパッケージをダウンロードするサーバーが選択されますが、海外のミラーサーバーが選択されてダウンロード速度がとても遅くなることがあります。

そのようなときは、fastestmirrorオプションを有効化しておくことで、自動的に最速のミラーサーバーが選択されるようになります。fastestmirrorオプションを有効化するには、dnf.confのmainセクションに「fastestmirror = True」と記述します。(デフォルト値はFalse)

# vi /etc/dnf/dnf.conf

[main]
fastestmirror = True

パッケージサイズが小さいとそれほど効果を感じませんが、ファームウェアパッケージなど数百メガバイトを超えるようなパッケージをダウンロードする際に、ダウンロード時間に雲泥の差が出るので有効化しておくことをおすすめします。