dnfコマンド チートシート

cheatsheet

🔍 パッケージ検索

目的のパッケージを見つけるためのコマンド

パッケージ名や説明文に含まれるキーワードで検索します。

dnf search <キーワード>

例: httpd関連のパッケージを検索

dnf search httpd

インストール済み/利用可能なパッケージ一覧

特定のパッケージがインストール済みか、またはリポジトリで利用可能かを確認します。

# 全ての利用可能・インストール済みパッケージを表示
dnf list

# 特定のパッケージ名を指定 (ワイルドカード使用可)
dnf list <パッケージ名>

# インストール済みのパッケージのみ表示
dnf list installed

# 利用可能なパッケージのみ表示
dnf list available

# 更新可能なパッケージのみ表示
dnf list upgrades

例: 名前に ‘python3’ を含むインストール済みパッケージを表示

dnf list installed '*python3*'

ファイルや機能を提供するパッケージの検索

特定のファイルパスや、特定の機能 (例: /usr/bin/python3) を提供するパッケージを検索します。

dnf provides <ファイルパス or 機能>

例: /etc/dnf/dnf.conf ファイルを提供するパッケージを検索

dnf provides /etc/dnf/dnf.conf

例: ‘webserver’ 機能を提供するパッケージを検索

dnf provides webserver

ℹ️ パッケージ情報表示

パッケージの詳細情報を確認するコマンド

指定したパッケージの詳細情報 (説明、バージョン、リポジトリなど) を表示します。

dnf info <パッケージ名>

例: openssl パッケージの詳細情報を表示

dnf info openssl

リポジトリ内のパッケージ情報 (repoquery)

dnf info より詳細な情報や、インストールされていないパッケージの情報も取得できます。

コマンド 説明
dnf repoquery -i <パッケージ名>
パッケージの詳細情報を表示 (dnf info と同様だが、リポジトリ内の情報が主)。
dnf repoquery -l <パッケージ名>
パッケージに含まれるファイル一覧を表示。
dnf repoquery --requires <パッケージ名>
パッケージが依存する他のパッケージや機能を表示。
dnf repoquery --whatrequires <パッケージ名 or 機能>
指定したパッケージや機能に依存している他のパッケージを表示。
dnf repoquery --location <パッケージ名>
パッケージのダウンロード元URLを表示。

例: httpd パッケージに含まれるファイル一覧を表示

dnf repoquery -l httpd

例: httpd パッケージが依存するものを表示

dnf repoquery --requires httpd

📦 パッケージのインストール

新しいパッケージをシステムに追加するコマンド

リポジトリから指定したパッケージをインストールします。依存関係も自動で解決されます。

dnf install <パッケージ名1> [<パッケージ名2> ...]

オプション:

  • -y, --assumeyes: 確認プロンプトをスキップし、自動で ‘yes’ と回答します。
  • --nobest: 利用可能な最新バージョンではなく、依存関係を満たす任意のバージョンをインストールしようとします(非推奨の場合あり)。
  • --allowerasing: 依存関係の競合を解決するために、インストール済みパッケージの削除を許可します(注意して使用)。
  • --skip-broken: 依存関係に問題があるパッケージをスキップします。

例: nginx と php-fpm パッケージをインストール (確認あり)

dnf install nginx php-fpm

例: htop パッケージを自動承認でインストール

dnf install -y htop

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

ダウンロード済みのRPMファイルや、URLを指定してインストールします。依存関係はリポジトリから解決されます。

# ローカルファイルからインストール
dnf install </パス/to/パッケージ.rpm>

# URLからインストール
dnf install <URL/to/パッケージ.rpm>

例: カレントディレクトリにある custom-package.rpm をインストール

dnf install ./custom-package.rpm

パッケージの再インストール

設定ファイルなどを保持したまま、インストール済みのパッケージを再インストールします。問題が発生した場合の修復に役立ちます。

dnf reinstall <パッケージ名>

例: coreutils パッケージを再インストール

dnf reinstall coreutils

特定のアーキテクチャのパッケージをインストール

マルチアーキテクチャ環境で、特定のアーキテクチャのパッケージを明示的にインストールします。

dnf install <パッケージ名>.<アーキテクチャ>

例: glibc の32ビット版 (i686) をインストール (システムが対応している場合)

dnf install glibc.i686

🔄 パッケージの更新

インストール済みパッケージを最新バージョンに保つコマンド

更新の確認

利用可能なパッケージの更新を確認します。実際には更新されません。

dnf check-update

全てのパッケージを更新

インストール済みの全てのパッケージを、利用可能な最新バージョンに更新します。

dnf upgrade

または

dnf update # (upgrade のエイリアス)

オプション:

  • -y, --assumeyes: 確認プロンプトをスキップします。
  • --security: セキュリティ関連の更新のみを適用します。
  • --bugfix: バグ修正関連の更新のみを適用します。
  • --enhancement: 機能拡張関連の更新のみを適用します。
  • --refresh: 更新チェックの前にリポジトリのメタデータを強制的に更新します。
  • --obsoletes: 古いパッケージを新しい名前のパッケージで置き換える処理(obsoletes)を含めて更新します (デフォルトで有効)。--no-obsoletes で無効化できます。

例: 全てのパッケージを自動承認で更新

dnf upgrade -y

例: セキュリティ関連の更新のみを適用

dnf upgrade --security

特定のパッケージを更新

指定したパッケージのみを最新バージョンに更新します。

dnf upgrade <パッケージ名1> [<パッケージ名2> ...]

例: openssl と curl パッケージを更新

dnf upgrade openssl curl

ディストリビューションの同期 (メジャーバージョンアップなど)

システム全体を特定のリポジトリ状態 (通常は最新) に同期します。不要になったパッケージの削除や、依存関係の解決のためにパッケージのダウングレードが行われることもあります。メジャーバージョンアップ時などに使用されます。

dnf distro-sync

特定のパッケージのみ同期することも可能です。

dnf distro-sync <パッケージ名>

注意: このコマンドはシステムに大きな変更を加える可能性があるため、慎重に使用してください。

🗑️ パッケージの削除

不要になったパッケージをシステムから削除するコマンド

指定したパッケージを削除します。そのパッケージに依存している他のパッケージも同時に削除される場合があります(確認メッセージが表示されます)。

dnf remove <パッケージ名1> [<パッケージ名2> ...]

または

dnf erase <パッケージ名1> [<パッケージ名2> ...] # (remove のエイリアス)

オプション:

  • -y, --assumeyes: 確認プロンプトをスキップします。

例: php パッケージを削除

dnf remove php

不要になった依存パッケージの自動削除

他のパッケージから依存されなくなり、明示的にインストールされたわけでもないパッケージ(孤児パッケージ)を自動的に削除します。

dnf autoremove

このコマンドは dnf remove 実行後などに定期的に実行すると、システムをクリーンに保つのに役立ちます。

例: 不要な依存関係を自動削除 (確認あり)

dnf autoremove

重複パッケージの削除

何らかの理由で同じパッケージの古いバージョンが残ってしまっている場合に、古い方を削除します。

dnf remove --duplicates

通常は自動で処理されますが、手動で実行することも可能です。

💾 キャッシュ管理

DNFが使用するキャッシュデータを管理するコマンド

DNFは高速化のために、リポジトリのメタデータやダウンロードしたパッケージをキャッシュします。これらのキャッシュを管理するコマンドです。

コマンド 説明
dnf clean all
全てのキャッシュ (メタデータ、ダウンロード済みパッケージなど) を削除します。ディスクスペースを解放したい場合や、キャッシュに問題がある場合に実行します。
dnf clean metadata
リポジトリのメタデータキャッシュのみを削除します。リポジトリ情報が古い場合に有効です。
dnf clean packages
ダウンロードされたRPMパッケージのキャッシュのみを削除します。
dnf clean dbcache
SQLiteデータベースとしてキャッシュされたメタデータを削除します。
dnf makecache
全ての有効なリポジトリからメタデータをダウンロードし、キャッシュを再構築します。dnf clean metadata の後に実行することが多いです。
dnf makecache --timer
dnf-makecache.timer (systemdタイマー) によって定期的に実行されるキャッシュ更新と同じ処理を手動で実行します。

例: 全てのキャッシュを削除し、再度キャッシュを構築する

dnf clean all
dnf makecache

パッケージ取得元 (リポジトリ) を管理するコマンド

リポジトリ一覧表示

現在システムで設定されているリポジトリの一覧を表示します。

# 有効なリポジトリのみ表示 (デフォルト)
dnf repolist

# 全てのリポジトリ (有効/無効含む) を表示
dnf repolist all

# 無効なリポジトリのみ表示
dnf repolist disabled

リポジトリ情報表示

特定のリポジトリに関する詳細情報 (URL, パッケージ数など) を表示します。

dnf repoinfo <リポジトリID>

例: ‘epel’ リポジトリの詳細情報を表示

dnf repoinfo epel

リポジトリの有効化/無効化 (config-manager)

dnf config-manager コマンド (dnf-plugins-core パッケージが必要) を使用して、リポジトリを永続的に有効化または無効化します。

# リポジトリを有効化
dnf config-manager --set-enabled <リポジトリID>

# リポジトリを無効化
dnf config-manager --set-disabled <リポジトリID>

例: ‘epel-testing’ リポジトリを有効化

dnf config-manager --set-enabled epel-testing

例: ‘rpmfusion-free-updates-testing’ リポジトリを無効化

dnf config-manager --set-disabled rpmfusion-free-updates-testing

リポジトリの追加 (config-manager)

.repo ファイルのURLを指定して、新しいリポジトリを追加します。

dnf config-manager --add-repo <リポジトリファイルのURL>

例: Docker CE リポジトリを追加 (URLは例)

dnf config-manager --add-repo https://download.docker.com/linux/fedora/docker-ce.repo

注意: 追加するリポジトリの信頼性を確認してください。


一時的なリポジトリ指定

コマンド実行時に一時的にリポジトリを指定することも可能です。

# 特定のリポジトリを一時的に有効化してインストール
dnf --enablerepo=<リポジトリID> install <パッケージ名>

# 特定のリポジトリを一時的に無効化して更新
dnf --disablerepo=<リポジトリID> upgrade

# 全てのリポジトリを無効化し、指定したものだけ有効化して検索
dnf --disablerepo="*" --enablerepo=<リポジトリID> search <キーワード>

例: ‘epel-testing’ を一時的に有効にして ‘package-from-testing’ をインストール

dnf --enablerepo=epel-testing install package-from-testing

⏳ トランザクション履歴

DNFによる操作履歴を確認・操作するコマンド

DNFはパッケージのインストール、更新、削除などの操作をトランザクションとして記録しています。これらの履歴を確認したり、元に戻したりできます。

コマンド 説明
dnf history list
トランザクション履歴の一覧を表示します。ID、実行日時、操作内容などが表示されます。
dnf history list <パッケージ名>
特定のパッケージに関連するトランザクション履歴のみを表示します。
dnf history info <ID>
指定したIDのトランザクションの詳細情報を表示します。変更されたパッケージ一覧などが確認できます。
dnf history info last
最後のトランザクションの詳細情報を表示します。
dnf history undo <ID>
指定したIDのトランザクションを取り消します。例えば、インストールを取り消す場合はパッケージが削除されます。
dnf history redo <ID>
指定したIDのトランザクション(通常は undo されたもの)を再度実行します。
dnf history rollback <ID>
指定したIDのトランザクション完了後の状態まで、システムの状態をロールバックします。ID以降の全てのトランザクションが取り消されます。非常に強力なコマンドなので注意して使用してください。
dnf history userinstalled
ユーザーが明示的にインストールしたパッケージの一覧を表示します。依存関係で自動的にインストールされたパッケージは含まれません。

例: 最新のトランザクションを取り消す

dnf history undo last

例: IDが 5 のトランザクションの詳細を確認

dnf history info 5

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

関連するパッケージの集まり (グループ) を管理するコマンド

特定の目的 (例: Webサーバー、開発ツール) のためにまとめられたパッケージグループを扱います。

コマンド 説明
dnf group list
利用可能なパッケージグループの一覧を表示します。インストール済みのグループも示されます。
dnf group list hidden
非表示設定のグループも含めて一覧表示します。
dnf group info <グループ名>
指定したグループの詳細情報 (説明、含まれる必須/デフォルト/オプションパッケージ) を表示します。グループ名は引用符で囲む必要がある場合があります (例: “Development Tools”)。
dnf group install <グループ名>
指定したグループに含まれるパッケージ (通常は必須とデフォルト) をインストールします。
dnf group install --with-optional <グループ名>
指定したグループの必須、デフォルト、オプションのパッケージを全てインストールします。
dnf group update <グループ名>
指定したグループに含まれるパッケージを更新します。グループ定義が変更された場合、新しいパッケージがインストールされることもあります。
dnf group remove <グループ名>
指定したグループに含まれるパッケージを削除します。他のグループやパッケージから依存されていない場合に削除されます。
dnf group mark install <グループ名>
グループを「インストール済み」としてマークします (パッケージのインストール/削除は行いません)。システム環境の移行時などに役立ちます。
dnf group mark remove <グループ名>
グループの「インストール済み」マークを解除します (パッケージの削除は行いません)。

例: “Development Tools” グループをインストール

dnf group install "Development Tools"

例: “Scientific Support” グループの詳細情報を表示

dnf group info "Scientific Support"

🧩 モジュール管理 (対応環境のみ)

複数のバージョンやプロファイルを持つソフトウェアコレクション (モジュール) を管理するコマンド

FedoraやRHEL 8以降などのディストリビューションでは、アプリケーションストリーム (モジュール) 機能が利用できます。これにより、例えばPython 3.6とPython 3.9をシステム内で共存させたり、切り替えたりすることが容易になります。

コマンド 説明
dnf module list
利用可能なモジュール、ストリーム、プロファイルの一覧を表示します。有効なストリームやインストール済みのプロファイルも示されます。
dnf module list <モジュール名>
特定のモジュールの詳細 (利用可能なストリーム、プロファイル) を表示します。
dnf module info <モジュール名>
モジュールの説明やアーティファクト (含まれるRPMパッケージ) を表示します。
dnf module info <モジュール名>:<ストリーム>
特定のストリームの詳細情報を表示します。
dnf module info --profile <モジュール名>:<ストリーム>/<プロファイル>
特定のプロファイルに含まれるパッケージ一覧を表示します。
dnf module enable <モジュール名>:<ストリーム>
指定したモジュールのストリームを有効にします。これにより、dnf install などでそのストリームのパッケージが利用可能になります。
dnf module disable <モジュール名>
指定したモジュールを無効にします。有効なストリームが選択されなくなります。
dnf module install <モジュール名>:<ストリーム>/<プロファイル>
指定したモジュールのストリームを有効にし、指定したプロファイルに含まれるパッケージをインストールします。プロファイルを省略すると、デフォルトプロファイルがインストールされます。
dnf module switch-to <モジュール名>:<ストリーム>
有効なストリームを切り替えます。関連パッケージが新しいストリームのものに更新/ダウングレード/削除されます。
dnf module remove <モジュール名>:<ストリーム>/<プロファイル>
指定したプロファイルのパッケージを削除します。
dnf module reset <モジュール名>
モジュールの状態 (有効/無効、選択ストリーム) をリセットします。インストール済みのパッケージは削除されません。

例: NodeJS モジュールの利用可能なストリームを表示

dnf module list nodejs

例: PostgreSQL 13 ストリームを有効にする

dnf module enable postgresql:13

例: Python 3.9 の開発用プロファイルをインストール

dnf module install python39/development

例: 有効な nginx ストリームを 1.20 に切り替える

dnf module switch-to nginx:1.20

💡 その他便利なコマンド・オプション

日常的な管理に役立つその他の機能

コマンド/オプション 説明
dnf list --showduplicates
インストール済みおよび利用可能な全てのバージョンのパッケージを表示します。ダウングレード可能なバージョンを探す際などに使えます。
dnf downgrade <パッケージ名> [...]
指定したパッケージを以前のバージョンにダウングレードします。利用可能な最も新しい古いバージョンが選択されます。
dnf shell
対話的なシェルモードを開始します。複数の操作をまとめて実行し、最後にコミットすることができます。
dnf check
ローカルのRPMデータベースに問題 (依存関係の破損、重複など) がないかチェックします。
--setopt=<キー>=<値>
一時的にDNFの設定値を変更してコマンドを実行します。例: --setopt=install_weak_deps=False で推奨パッケージ (weak dependencies) のインストールを抑制する。
--downloadonly
パッケージのインストールや更新を行わず、RPMファイルのダウンロードのみを行います。ダウンロード先は通常 /var/cache/dnf/ 配下のリポジトリ別ディレクトリです。
--releasever=<バージョン>
対象とするディストリビューションのリリースバージョンを指定します。通常はシステムのバージョンが自動で使われますが、テストや特定バージョン向けのリポジトリを使いたい場合に指定します。
dnf needs-restarting -r
更新されたパッケージによって再起動が必要なサービスがないか、またシステム全体の再起動が必要か (カーネルやglibcなどが更新された場合) をチェックします (dnf-utils パッケージが必要)。

例: httpd パッケージをダウングレード

dnf downgrade httpd

例: nano パッケージをダウンロードのみ行う

dnf install nano --downloadonly

コメント

タイトルとURLをコピーしました