🔍 パッケージ検索
目的のパッケージを見つけるためのコマンド
パッケージ名や説明文に含まれるキーワードで検索します。
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 info と同様だが、リポジトリ内の情報が主)。 |
|
パッケージに含まれるファイル一覧を表示。 |
|
パッケージが依存する他のパッケージや機能を表示。 |
|
指定したパッケージや機能に依存している他のパッケージを表示。 |
|
パッケージのダウンロード元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は高速化のために、リポジトリのメタデータやダウンロードしたパッケージをキャッシュします。これらのキャッシュを管理するコマンドです。
コマンド | 説明 |
---|---|
|
全てのキャッシュ (メタデータ、ダウンロード済みパッケージなど) を削除します。ディスクスペースを解放したい場合や、キャッシュに問題がある場合に実行します。 |
|
リポジトリのメタデータキャッシュのみを削除します。リポジトリ情報が古い場合に有効です。 |
|
ダウンロードされたRPMパッケージのキャッシュのみを削除します。 |
|
SQLiteデータベースとしてキャッシュされたメタデータを削除します。 |
|
全ての有効なリポジトリからメタデータをダウンロードし、キャッシュを再構築します。dnf clean metadata の後に実行することが多いです。 |
|
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はパッケージのインストール、更新、削除などの操作をトランザクションとして記録しています。これらの履歴を確認したり、元に戻したりできます。
コマンド | 説明 |
---|---|
|
トランザクション履歴の一覧を表示します。ID、実行日時、操作内容などが表示されます。 |
|
特定のパッケージに関連するトランザクション履歴のみを表示します。 |
|
指定したIDのトランザクションの詳細情報を表示します。変更されたパッケージ一覧などが確認できます。 |
|
最後のトランザクションの詳細情報を表示します。 |
|
指定したIDのトランザクションを取り消します。例えば、インストールを取り消す場合はパッケージが削除されます。 |
|
指定したIDのトランザクション(通常は undo されたもの)を再度実行します。 |
|
指定したIDのトランザクション完了後の状態まで、システムの状態をロールバックします。ID以降の全てのトランザクションが取り消されます。非常に強力なコマンドなので注意して使用してください。 |
|
ユーザーが明示的にインストールしたパッケージの一覧を表示します。依存関係で自動的にインストールされたパッケージは含まれません。 |
例: 最新のトランザクションを取り消す
dnf history undo last
例: IDが 5 のトランザクションの詳細を確認
dnf history info 5
📚 パッケージグループ管理
関連するパッケージの集まり (グループ) を管理するコマンド
特定の目的 (例: Webサーバー、開発ツール) のためにまとめられたパッケージグループを扱います。
コマンド | 説明 |
---|---|
|
利用可能なパッケージグループの一覧を表示します。インストール済みのグループも示されます。 |
|
非表示設定のグループも含めて一覧表示します。 |
|
指定したグループの詳細情報 (説明、含まれる必須/デフォルト/オプションパッケージ) を表示します。グループ名は引用符で囲む必要がある場合があります (例: “Development Tools”)。 |
|
指定したグループに含まれるパッケージ (通常は必須とデフォルト) をインストールします。 |
|
指定したグループの必須、デフォルト、オプションのパッケージを全てインストールします。 |
|
指定したグループに含まれるパッケージを更新します。グループ定義が変更された場合、新しいパッケージがインストールされることもあります。 |
|
指定したグループに含まれるパッケージを削除します。他のグループやパッケージから依存されていない場合に削除されます。 |
|
グループを「インストール済み」としてマークします (パッケージのインストール/削除は行いません)。システム環境の移行時などに役立ちます。 |
|
グループの「インストール済み」マークを解除します (パッケージの削除は行いません)。 |
例: “Development Tools” グループをインストール
dnf group install "Development Tools"
例: “Scientific Support” グループの詳細情報を表示
dnf group info "Scientific Support"
🧩 モジュール管理 (対応環境のみ)
複数のバージョンやプロファイルを持つソフトウェアコレクション (モジュール) を管理するコマンド
FedoraやRHEL 8以降などのディストリビューションでは、アプリケーションストリーム (モジュール) 機能が利用できます。これにより、例えばPython 3.6とPython 3.9をシステム内で共存させたり、切り替えたりすることが容易になります。
コマンド | 説明 |
---|---|
|
利用可能なモジュール、ストリーム、プロファイルの一覧を表示します。有効なストリームやインストール済みのプロファイルも示されます。 |
|
特定のモジュールの詳細 (利用可能なストリーム、プロファイル) を表示します。 |
|
モジュールの説明やアーティファクト (含まれるRPMパッケージ) を表示します。 |
|
特定のストリームの詳細情報を表示します。 |
|
特定のプロファイルに含まれるパッケージ一覧を表示します。 |
|
指定したモジュールのストリームを有効にします。これにより、dnf install などでそのストリームのパッケージが利用可能になります。 |
|
指定したモジュールを無効にします。有効なストリームが選択されなくなります。 |
|
指定したモジュールのストリームを有効にし、指定したプロファイルに含まれるパッケージをインストールします。プロファイルを省略すると、デフォルトプロファイルがインストールされます。 |
|
有効なストリームを切り替えます。関連パッケージが新しいストリームのものに更新/ダウングレード/削除されます。 |
|
指定したプロファイルのパッケージを削除します。 |
|
モジュールの状態 (有効/無効、選択ストリーム) をリセットします。インストール済みのパッケージは削除されません。 |
例: 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
💡 その他便利なコマンド・オプション
日常的な管理に役立つその他の機能
コマンド/オプション | 説明 |
---|---|
|
インストール済みおよび利用可能な全てのバージョンのパッケージを表示します。ダウングレード可能なバージョンを探す際などに使えます。 |
|
指定したパッケージを以前のバージョンにダウングレードします。利用可能な最も新しい古いバージョンが選択されます。 |
|
対話的なシェルモードを開始します。複数の操作をまとめて実行し、最後にコミットすることができます。 |
|
ローカルのRPMデータベースに問題 (依存関係の破損、重複など) がないかチェックします。 |
|
一時的にDNFの設定値を変更してコマンドを実行します。例: --setopt=install_weak_deps=False で推奨パッケージ (weak dependencies) のインストールを抑制する。 |
|
パッケージのインストールや更新を行わず、RPMファイルのダウンロードのみを行います。ダウンロード先は通常 /var/cache/dnf/ 配下のリポジトリ別ディレクトリです。 |
|
対象とするディストリビューションのリリースバージョンを指定します。通常はシステムのバージョンが自動で使われますが、テストや特定バージョン向けのリポジトリを使いたい場合に指定します。 |
|
更新されたパッケージによって再起動が必要なサービスがないか、またシステム全体の再起動が必要か (カーネルやglibcなどが更新された場合) をチェックします (dnf-utils パッケージが必要)。 |
例: httpd パッケージをダウングレード
dnf downgrade httpd
例: nano パッケージをダウンロードのみ行う
dnf install nano --downloadonly
コメント