DNF ツールを使用したソフトウェアの管理
DNF ソフトウェア管理ツールを使用した RPM リポジトリー内のコンテンツの管理
概要
Red Hat ドキュメントへのフィードバック (英語のみ)
Red Hat ドキュメントに関するご意見やご感想をお寄せください。また、改善点があればお知らせください。
Jira からのフィードバック送信 (アカウントが必要)
- Jira の Web サイトにログインします。
- 上部のナビゲーションバーで Create をクリックします。
- Summary フィールドにわかりやすいタイトルを入力します。
- Description フィールドに、ドキュメントの改善に関するご意見を記入してください。ドキュメントの該当部分へのリンクも追加してください。
- ダイアログの下部にある Create をクリックします。
第1章 RHEL 10 でのコンテンツの配布
次のセクションでは、Red Hat Enterprise Linux (RHEL) 10 でソフトウェアがどのように配布されるかについて説明します。
1.1. リポジトリー
Red Hat Enterprise Linux は、次のようなさまざまなリポジトリーを通じてコンテンツを配布します。
- BaseOS
- BaseOS リポジトリーのコンテンツは、すべてのインストールの基盤を提供する、基礎となるオペレーティングシステム機能のコアセットで構成されています。このコンテンツは RPM 形式で提供されており、RHEL の以前のリリースと同様のサポート条件が適用されます。
- AppStream
- AppStream リポジトリーには、さまざまなワークロードとユースケースに対応するために、ユーザー空間アプリケーション、ランタイム言語、およびデータベースが同梱されます。
BaseOS コンテンツセットと AppStream コンテンツセットは両方とも RHEL に必要であり、すべての RHEL サブスクリプションで利用できます。
- CodeReady Linux Builder
- CodeReady Linux Builder リポジトリーは、すべての RHEL サブスクリプションで利用できます。このリポジトリーは、開発者向けの追加パッケージを提供します。Red Hat は、CodeReady Linux Builder リポジトリーに含まれるパッケージをサポートしていません。
1.2. Application Streams
Red Hat は、複数のバージョンのユーザー空間コンポーネントを Application Streams として提供しています。Application Streams は、コアオペレーティングシステムパッケージよりも頻繁に更新されます。これにより、プラットフォームや特定のデプロイメントの基盤となる安定性に影響を及ぼさずに、RHEL をより柔軟にカスタマイズできます。
Application Streams は以下の形式で利用できます。
- RPM 形式
- Software Collections
RHEL 10 では、初期の Application Stream バージョンが RPM として提供されており、これは dnf install
コマンドを使用してインストールできます。
第2章 DNF の設定
DNF および関連ユーティリティーの設定は、/etc/dnf/dnf.conf
ファイルの [main]
セクションに保存されます。
2.1. 現在の DNF 設定の表示
/etc/dnf/dnf.conf
ファイルの [main]
セクションには、明示的に指定した設定のみが含まれます。ただし、[main]
セクションの設定はすべて表示することができます。これには、未設定でデフォルト値が使用されている設定も含まれます。
手順
グローバルの DNF 設定を表示します。
dnf config-manager --dump
# dnf config-manager --dump
Copy to Clipboard Copied!
2.2. DNF メインオプションの設定
/etc/dnf/dnf.conf
ファイルには、1 つの [main]
セクションが含まれています。このセクションのキーと値のペアは、DNF のリポジトリーの操作方法および処理方法に影響を及ぼします。
手順
-
/etc/dnf/dnf.conf
ファイルを編集します。 -
要件に応じて
[main]
セクションを更新します。 - 変更を保存します。
2.3. DNF プラグインの管理
インストールした各プラグインの /etc/dnf/plugins/
ディレクトリーには、それぞれ独自の設定ファイルが含まれている場合があります。このディレクトリー内のプラグイン設定ファイルには、<plug-in_name>.conf
という名前を付けます。通常、デフォルトではプラグインが有効になっています。これらの設定ファイルのいずれかでプラグインを無効にするには、ファイルに次の内容を追加します。
[main] enabled=False
[main]
enabled=False
2.4. DNF プラグインの有効化および無効化
DNF ツールでは、プラグインがデフォルトでロードされます。ただし、DNF がロードするプラグインは制御することができます。
すべてのプラグインの無効化は、潜在的な問題を診断する場合にのみ行ってください。DNF には product-id
や subscription-manager
などの特定のプラグインが必要です。それらを無効にすると、Red Hat Enterprise Linux はコンテンツ配信ネットワーク (CDN) からソフトウェアをインストールまたは更新できなくなります。
手順
次のいずれかの方法を使用して、DNF がプラグインを使用する方法を制御します。
DNF プラグインのロードをシステム全体で有効または無効にするには、
/etc/dnf/dnf.conf
ファイルの[main]
セクションにplugins
パラメーターを追加します。-
すべての DNF プラグインのロードを有効にするには、
plugins=1
(デフォルト) を設定します。 -
すべての DNF プラグインのロードを無効にするには、
plugins=0
を設定します。
-
すべての DNF プラグインのロードを有効にするには、
-
特定のプラグインを無効にするには、
/etc/dnf/plugins/<plug-in_name>.conf
ファイルの[main]
セクションにenabled=False
を追加します。 特定のコマンドですべての DNF プラグインを無効にするには、コマンドに
--noplugins
オプションを追加します。たとえば、1 つの update コマンドで DNF プラグインを無効にするには、次のように入力します。dnf --noplugins update
# dnf --noplugins update
Copy to Clipboard Copied! 1 つのコマンドで特定の DNF プラグインを無効にするには、コマンドに
--disableplugin=plugin-name
オプションを追加します。たとえば、1 つの update コマンドで特定の DNF プラグインを無効にするには、次のように入力します。dnf update --disableplugin=<plugin_name>
# dnf update --disableplugin=<plugin_name>
Copy to Clipboard Copied! 1 つのコマンドで特定の DNF プラグインを有効にするには、コマンドに
--enableplugin=plugin-name
オプションを追加します。たとえば、1 つの update コマンドで特定の DNF プラグインを有効にするには、次のように入力します。dnf update --enableplugin=<plugin_name>
# dnf update --enableplugin=<plugin_name>
Copy to Clipboard Copied!
2.5. DNF 操作からのパッケージの除外
excludepkgs
オプションを使用すると、DNF 操作からパッケージを除外するように DNF を設定できます。excludepkgs
は、/etc/dnf/dnf.conf
ファイルの [main]
またはリポジトリーセクションで定義できます。
--disableexcludes
オプションを使用すると、設定済みパッケージを操作から除外することを一時的に無効にできます。
手順
/etc/dnf/dnf.conf
ファイルに次の行を追加して、DNF 操作からパッケージを除外します。excludepkgs=<package_name_1>,<package_name_2> ...
excludepkgs=<package_name_1>,<package_name_2> ...
Copy to Clipboard Copied! または、パッケージ名の代わりに glob 表現を使用して、除外するパッケージを定義します。詳細は、DNF 入力での glob 表現の指定 を参照してください。
第3章 RHEL コンテンツの検索
次のセクションでは、DNF ソフトウェア管理ツールを使用して、AppStream および BaseOS リポジトリー内のコンテンツを見つけて調べる方法について説明します。
3.1. ソフトウェアパッケージの検索
必要なソフトウェアを提供するパッケージを特定するには、DNF を使用してリポジトリーを検索します。
手順
シナリオに応じて、次のいずれかのオプションを使用してリポジトリーを検索します。
パッケージの名前または概要内の用語を検索するには、次のように入力します。
dnf search <term>
$ dnf search <term>
Copy to Clipboard Copied! パッケージの名前、概要、または説明内の用語を検索するには、次のように入力します。
dnf search --all <term>
$ dnf search --all <term>
Copy to Clipboard Copied! --all
オプションを使用して説明内で追加の検索を行うと、通常の検索操作よりも時間がかかることに注意してください。パッケージ名を検索し、出力にパッケージ名とそのバージョンをリストするには、次のように入力します。
dnf repoquery <package_name>
$ dnf repoquery <package_name>
Copy to Clipboard Copied! ファイルを提供するパッケージを検索するには、ファイル名またはファイルへのパスを指定します。
dnf provides <file_name>
$ dnf provides <file_name>
Copy to Clipboard Copied!
3.2. ソフトウェアパッケージのリスト表示
DNF を使用すると、リポジトリーで使用可能なパッケージとそのバージョンのリストを表示できます。必要に応じてこのリストをフィルタリングして、たとえば更新を利用できるパッケージのみをリストすることができます。
手順
利用可能なすべてのパッケージの最新バージョンを、アーキテクチャー、バージョン番号、インストール元のリポジトリーを含めてリスト表示します。
dnf list --all
$ dnf list --all ... postgresql.x86_64 16.4-1.el10 rhel-AppStream postgresql-contrib.x86_64 16.4-1.el10 rhel-AppStream postgresql-docs.x86_64 16.4-1.el10 rhel-AppStream postgresql-jdbc.noarch 42.7.1-6.el10 rhel-AppStream ...
Copy to Clipboard Copied! リポジトリーの前の
@
記号は、この行のパッケージが現在インストールされていることを示します。または、使用可能なすべてのパッケージを、バージョン番号とアーキテクチャーを含めて表示するには、次のように入力します。
dnf repoquery
$ dnf repoquery ... postgresql-0:16.4-1.el10.x86_64 postgresql-contrib-0:16.4-1.el10.x86_64 postgresql-docs-0:16.4-1.el10.x86_64 postgresql-jdbc-0:42.7.1-6.el10.noarch postgresql-odbc-0:16.00.0000-4.el10.x86_64 ...
Copy to Clipboard Copied! 必要に応じて、
--all
の代わりに他のオプションを使用して出力をフィルタリングできます。次に例を示します。-
インストールされているパッケージのみをリスト表示するには、
--installed
を使用します。 -
利用可能なすべてのパッケージをリスト表示するには、
--available
を使用します。 -
新しいバージョンを利用できるパッケージをリスト表示するには、
--upgrades
を使用します。
注記glob 表現を引数として追加することで、結果をフィルタリングできます。詳細は、DNF 入力での glob 表現の指定 を参照してください。
-
インストールされているパッケージのみをリスト表示するには、
3.3. パッケージ情報の表示
DNF リポジトリーをクエリーして、次のようなパッケージに関する詳細を表示できます。
- バージョン
- Release
- アーキテクチャー
- パッケージサイズ
- 説明
手順
1 つ以上の利用可能なパッケージに関する情報を表示します。
dnf info <package_name>
$ dnf info <package_name>
Copy to Clipboard Copied! このコマンドは、現在インストールされているパッケージの情報と、リポジトリー内にあるその新しいバージョン (利用可能な場合) の情報を表示します。または、次のコマンドを使用して、指定した名前を持つ、リポジトリー内のすべてのパッケージの情報を表示します。
dnf repoquery --info <package_name>
$ dnf repoquery --info <package_name>
Copy to Clipboard Copied! 注記glob 表現を引数として追加することで、結果をフィルタリングできます。詳細は、DNF 入力での glob 表現の指定 を参照してください。
3.4. パッケージグループとグループが提供するパッケージのリスト表示
パッケージグループには複数のパッケージをバンドルされています。パッケージグループを使用すると、グループに割り当てられたすべてのパッケージを 1 回の手順でインストールできます。ただし、インストールする前に、必要なパッケージグループの名前を特定する必要があります。
手順
インストールされているグループと使用可能なグループの両方をリストします。
dnf group list
$ dnf group list
Copy to Clipboard Copied! dnf group list
コマンドに--installed
および--available
オプションを追加すると、結果をフィルタリングできます。--hidden
オプションを使用すると、出力に非表示のグループを表示できます。特定のグループに含まれる必須、オプション、およびデフォルトのパッケージをリストします。
dnf group info "<group_name>"
$ dnf group info "<group_name>"
Copy to Clipboard Copied! 注記glob 表現を引数として追加することで、結果をフィルタリングできます。詳細は、DNF 入力での glob 表現の指定 を参照してください。
オプション: インストール済みおよび利用可能なグループの数を表示します。
dnf group summary
$ dnf group summary
Copy to Clipboard Copied!
3.5. リポジトリーのリスト表示
システムで有効または無効になっているリポジトリーの概要を取得するには、リポジトリーをリスト表示します。
手順
システムで有効になっているすべてのリポジトリーをリスト表示します。
dnf repolist
$ dnf repolist
Copy to Clipboard Copied! 特定のリポジトリーのみを表示するには、次のいずれかのオプションをコマンドに追加します。
-
--disabled
を追加すると、無効なリポジトリーのみがリストされます。 -
--all
を追加すると、有効なリポジトリーと無効なリポジトリーの両方がリストされます。
-
オプション: リポジトリーに関する追加情報をリスト表示します。
dnf repoinfo <repository_name>
$ dnf repoinfo <repository_name>
Copy to Clipboard Copied! 注記glob 表現を使用して結果をフィルタリングできます。詳細は、DNF 入力での glob 表現の指定 を参照してください。
3.6. DNF 入力での glob 表現の指定
1 つ以上の glob 表現を引数として追加することで、dnf
コマンドの結果をフィルタリングできます。
手順
dnf
コマンドで glob 表現を使用する場合は、次のいずれかの方法を使用します。glob 表現全体を一重引用符または二重引用符で囲みます。
dnf provides "*/<file_name>"
# dnf provides "*/<file_name>"
Copy to Clipboard Copied! <file_name>
の前に、絶対パスの場合は/
を付ける必要があります。フルパスが不明な場合にワイルドカードを使用するには、*/
を付ける必要があります。ワイルドカード文字の前にはバックスラッシュ (
\
) を追加して、ワイルドカード文字をエスケープします。dnf provides \*/<file_name>
# dnf provides \*/<file_name>
Copy to Clipboard Copied!
第4章 RHEL コンテンツのインストール
次のセクションでは、DNF ソフトウェア管理ツールを使用して Red Hat Enterprise Linux コンテンツをインストールする方法について説明します。
4.1. パッケージのインストール
ソフトウェアがデフォルトのインストールに含まれていない場合は、手動でインストールできます。DNF は依存関係を自動的に解決してインストールします。
前提条件
- オプション: インストールするパッケージの名前を把握している。
手順
次のいずれかの方法を使用してパッケージをインストールします。
リポジトリーからパッケージをインストールするには、次のように入力します。
dnf install <package_name_1> <package_name_2> ...
# dnf install <package_name_1> <package_name_2> ...
Copy to Clipboard Copied! i686
やx86_64
などの複数のアーキテクチャーをサポートするシステムにパッケージをインストールする場合は、パッケージ名にそれを追加することで、パッケージのアーキテクチャーを指定できます。dnf install <package_name>.<architecture>
# dnf install <package_name>.<architecture>
Copy to Clipboard Copied! パッケージが提供するファイルへのパスだけがわかっていて、パッケージ名がわからない場合にパッケージをインストールするには、次のパスを使用して対応するパッケージをインストールできます。
dnf install <path_to_file>
# dnf install <path_to_file>
Copy to Clipboard Copied! ローカル RPM ファイルをインストールするには、次のように入力します。
dnf install <path_to_RPM_file>
# dnf install <path_to_RPM_file>
Copy to Clipboard Copied! パッケージに依存関係がある場合は、これらの RPM ファイルへのパスも指定します。指定しなかった場合、DNF はリポジトリーから依存関係をダウンロードします。依存関係がリポジトリーで利用できない場合は失敗します。
4.2. パッケージグループのインストール
パッケージグループには複数のパッケージをバンドルされています。パッケージグループを使用すると、グループに割り当てられたすべてのパッケージを 1 回の手順でインストールできます。
手順
パッケージグループをインストールします。
dnf group install <group_name_or_ID>
# dnf group install <group_name_or_ID>
Copy to Clipboard Copied!
第5章 RHEL コンテンツの更新
DNF ソフトウェア管理ツールを使用すると、システムに保留中の更新があるか確認できます。更新が必要なパッケージをリスト表示して、1 つのパッケージ、複数のパッケージ、またはすべてのパッケージを一度に更新できます。更新を選択したパッケージに依存関係がある場合は、これらの依存関係も更新されます。
5.1. 更新の確認
システムにインストールされているパッケージに利用可能な更新があるかどうかを識別するには、それらをリスト表示します。
手順
インストールされたパッケージの利用可能な更新を確認します。
dnf check-update
# dnf check-update
Copy to Clipboard Copied! このコマンドは、更新が利用可能なパッケージおよびその依存関係のリストを表示します。
5.2. パッケージの更新
DNF を使用すると、単一のパッケージ、パッケージグループ、またはすべてのパッケージとその依存関係を一度に更新できます。
カーネルの更新を適用する際に、dnf
は、dnf upgrade
コマンドまたは dnf install
コマンドを使用しているかどうかに関わらず、新しいカーネルを常にインストールします。これは、installonlypkgs
DNF 設定オプションを使用して識別されたパッケージにのみ適用されることに注意してください。このようなパッケージには、たとえば、kernel
、kernel-core
、および kernel-modules
パッケージが含まれます。
手順
シナリオに応じて、次のいずれかのオプションを使用して更新を適用します。
すべてのパッケージとその依存関係を更新するには、次のコマンドを実行します。
dnf upgrade
# dnf upgrade
Copy to Clipboard Copied! 単一のパッケージを更新するには、次のように入力します。
dnf upgrade <package_name>
# dnf upgrade <package_name>
Copy to Clipboard Copied! 特定のパッケージグループからのパッケージのみを更新するには、次のように実行します。
dnf group upgrade <group_name>
# dnf group upgrade <group_name>
Copy to Clipboard Copied!
第6章 RHEL でのソフトウェア更新の自動化
DNF Automatic は、DNF に対する代替のコマンドラインインターフェイスで、systemd タイマーや cron ジョブなどのツールを使用した自動実行や定期実行に適しています。
DNF Automatic は、必要に応じてパッケージメタデータを同期し、利用可能な更新を確認してから、ツールの設定方法に応じて以下のアクションのいずれかを実行します。
- 終了
- 更新済みパッケージのダウンロード
- 更新のダウンロードおよび適用
その後、標準出力やメールなど、選択したメカニズムによって操作の結果が報告されます。
6.1. DNF Automatic のインストール
パッケージの更新を自動的かつ定期的に確認してダウンロードするには、dnf-automatic
パッケージに含まれる DNF Automatic ツールを使用できます。
手順
dnf-automatic
パッケージをインストールします。dnf install dnf-automatic
# dnf install dnf-automatic
Copy to Clipboard Copied!
検証
dnf-automatic
パッケージが存在することを確認して、インストールが正常に完了したことを確認します。rpm -qi dnf-automatic
# rpm -qi dnf-automatic
Copy to Clipboard Copied!
6.2. DNF Automatic 設定ファイル
初期設定では、DNF Automatic は /etc/dnf/automatic.conf
を設定ファイルとして使用し、動作を定義します。
設定ファイルは、以下のトピックセクションに分かれています。
[commands]
DNF Automatic の操作モードを設定します。
警告[commands]
セクションの操作モードの設定は、dnf-automatic.timer
以外のすべてのタイマーユニットに対して、systemd タイマーユニットで使用される設定によって上書きされます。[emitters]
DNF Automatic の結果が報告される方法を定義します。
[command]
コマンドエミッター設定を定義します。
[command_email]
電子メールの送信に使用する外部コマンドのメールエミッター設定を提供します。
[email]
電子メールエミッターの設定を提供します。
[base]
DNF のメイン設定ファイルの設定を上書きします。
/etc/dnf/automatic.conf
ファイルのデフォルト設定では、DNF Automatic は利用可能な更新を確認し、ダウンロードして、標準出力に結果を報告します。
6.3. DNF Automatic の有効化
DNF Automatic を 1 回実行するには、systemd タイマーユニットを起動する必要があります。ただし、DNF Automatic を定期的に実行する場合は、タイマーユニットを有効にする必要があります。dnf-automatic
パッケージで提供されているタイマーユニットの 1 つを使用することも、タイマーユニットのドロップインファイルを作成して実行時間を調整することもできます。
前提条件
-
/etc/dnf/automatic.conf
設定ファイルを変更して、DNF Automatic の挙動を指定している。
手順
systemd タイマーユニットをすぐに有効にして実行するには、次のように入力します。
systemctl enable --now <timer_name>
# systemctl enable --now <timer_name>
Copy to Clipboard Copied! タイマーをすぐに実行せずに有効にするだけの場合は、
--now
オプションを省略します。次のタイマーを使用できます。
-
dnf-automatic-download.timer
: 利用可能な更新をダウンロードします。 -
dnf-automatic-install.timer
: 利用可能な更新をダウンロードしてインストールします。 -
dnf-automatic-notifyonly.timer
: 利用可能な更新を報告します。 -
dnf-automatic.timer
: 利用可能な更新をダウンロード、ダウンロードおよびインストール、または報告します。
-
検証
タイマーが有効化されていることを確認します。
systemctl status <systemd timer unit>
# systemctl status <systemd timer unit>
Copy to Clipboard Copied! オプション: システム上の各タイマーが最後に実行された時刻を確認します。
systemctl list-timers --all
# systemctl list-timers --all
Copy to Clipboard Copied!
6.4. dnf-automatic パッケージに含まれる systemd タイマーユニットの概要
更新のダウンロードおよび適用時に、systemd タイマーユニットが優先され、/etc/dnf/automatic.conf
設定ファイルの設定が上書きされます。
たとえば、/etc/dnf/automatic.conf
設定ファイルで download_updates = yes
と設定していても、dnf-automatic-notifyonly.timer
ユニットをアクティブにした場合は、パッケージはダウンロードされません。
タイマーユニット | 機能 | /etc/dnf/automatic.conf ファイルの [commands] セクションの apply_updates および download_updates 設定を上書きしますか? |
---|---|---|
| キャッシュにパッケージをダウンロードし、更新を利用できるようにします。
このタイマーユニットでは更新パッケージはインストールされません。インストールを実行するには、 | はい |
| 更新したパッケージをダウンロードしてインストールします。 | はい |
| リポジトリーデータのみをダウンロードして、リポジトリーキャッシュを最新の状態に保ち、利用可能な更新を通知します。 このタイマーユニットでは、更新されたパッケージはダウンロードまたはインストールされません。 | はい |
|
更新のダウンロードおよび適用時のこのタイマーの動作は、 このタイマーはパッケージをダウンロードしますが、インストールはしません。 | なし |
第7章 RHEL コンテンツの削除
次のセクションでは、DNF ソフトウェア管理ツールを使用して Red Hat Enterprise Linux 10 のコンテンツを削除する方法について説明します。
7.1. インストール済みパッケージの削除
DNF を使用すると、システムにインストールされている単一のパッケージまたは複数のパッケージを削除できます。削除を選択したパッケージに未使用の依存関係がある場合、DNF はこれらの依存関係もアンインストールします。
手順
特定のパッケージを削除します。
dnf remove <package_name_1> <package_name_2> ...
# dnf remove <package_name_1> <package_name_2> ...
Copy to Clipboard Copied!
7.2. パッケージグループの削除
パッケージグループは複数のパッケージをバンドルします。パッケージグループを使用すると、グループに割り当てられているすべてのパッケージを 1 つの手順で削除できます。
手順
グループ名またはグループ ID でパッケージグループを削除します。
dnf group remove <group_name> <group_id>
# dnf group remove <group_name> <group_id>
Copy to Clipboard Copied!
第8章 パッケージ管理履歴の処理
dnf history
コマンドを使用すると、以下の情報を確認できます。
- DNF トランザクションのタイムライン。
- トランザクションの発生日時
- トランザクションの影響を受けたパッケージの数
- トランザクションの成功または中止の有無
- トランザクション間で RPM データベースが変更された場合
dnf history
コマンドを使用して、トランザクションをやり直すことができます。
8.1. DNF トランザクションのリスト表示
DNF ソフトウェア管理ツールを使用して、次のタスクを実行できます。
- 最新のトランザクションをリスト表示します。
- 選択したパッケージの最新の操作をリスト表示します。
- 特定のトランザクションの詳細を表示します。
手順
シナリオに応じて、次のいずれかのオプションを使用してトランザクション情報を表示します。
最新の DNF トランザクションのリストを表示するには、以下のコマンドを実行します。
dnf history
# dnf history
Copy to Clipboard Copied! 出力には、以下の情報が含まれます。
-
Action(s)
列には、トランザクション中に実行されたアクションのタイプが表示されます (例: インストール (I
)、アップグレード (U
)、削除 (E
) など)。 Altered
列には、トランザクション中に実行されたアクションの数が表示されます。アクションの数の後に、トランザクションの結果を指定することもできます。Action(s)
およびAltered
列の値の詳細は、dnf(8)
の man ページを参照してください。
-
選択したパッケージの最新操作のリストを表示するには、以下を実行します。
dnf history list <package_name>
# dnf history list <package_name>
Copy to Clipboard Copied! 特定のトランザクションの詳細を表示するには、以下のコマンドを実行します。
dnf history info <transaction_id>
# dnf history info <transaction_id>
Copy to Clipboard Copied!
glob 表現を引数として追加することで、結果をフィルタリングできます。詳細は、DNF 入力での glob 表現の指定 を参照してください。
8.2. DNF トランザクションの取り消し
DNF トランザクションを元に戻すことは、トランザクション中に実行された操作を元に戻す場合に役立ちます。たとえば、dnf install
コマンドを使用して複数のパッケージをインストールした場合は、インストールトランザクションを元に戻すことで、これらのパッケージを一度にアンインストールできます。
DNF トランザクションは次の方法で元に戻すことができます。
-
dnf history undo
コマンドを使用して、単一の DNF トランザクションを元に戻します。 -
dnf history rollback
コマンドを使用して、指定されたトランザクションと最後のトランザクションの間に実行されたすべての DNF トランザクションを元に戻します。
8.2.1. 単一の DNF トランザクションを元に戻す
dnf history undo
コマンドを使用して、単一のトランザクション内で実行されたステップを元に戻すことができます。
-
このトランザクションで新しいパッケージがインストールされた場合は、
dnf history undo
がそのパッケージをアンインストールします。 -
トランザクションでパッケージがアンインストールされた場合は、
dnf history undo
がそのパッケージを再インストールします。 また、
dnf history undo
コマンドは、古いパッケージが依然として利用可能な場合、更新されたすべてのパッケージを以前のバージョンにダウングレードしようとします。注記古いパッケージバージョンが利用できない場合は、
dnf history undo
コマンドを使用したダウングレードは失敗します。
手順
元に戻すトランザクションの ID を特定します。
dnf history
# dnf history ID | Command line | Date and time | Action(s) | Altered -------------------------------------------------------------------- 13 | install zip | 2022-11-03 10:49 | Install | 1 12 | install unzip | 2022-11-03 10:49 | Install | 1
Copy to Clipboard Copied! オプション: 詳細を表示して、これが元に戻す必要があるトランザクションであることを確認します。
dnf history info <transaction_id>
# dnf history info <transaction_id>
Copy to Clipboard Copied! トランザクションを元に戻します。
dnf history undo <transaction_id>
# dnf history undo <transaction_id>
Copy to Clipboard Copied! たとえば、以前にインストールした
unzip
パッケージをアンインストールする場合は、次のように入力します。dnf history undo 12
# dnf history undo 12
Copy to Clipboard Copied!
8.2.2. 複数の DNF トランザクションを元に戻す
dnf history rollback
コマンドを使用して、指定したトランザクションと最後のトランザクションの間に実行されたすべての DNF トランザクションを元に戻すことができます。トランザクション ID で指定されたトランザクションは変更されないことに注意してください。
手順
元に戻したい状態のトランザクション ID を特定します。
dnf history
# dnf history ID | Command line | Date and time | Action(s) | Altered ------------------------------------------------------------------ 14 | install wget | 2022-11-03 10:49 | Install | 1 13 | install unzip | 2022-11-03 10:49 | Install | 1 12 | install vim-X11 | 2022-11-03 10:20 | Install | 171 EE
Copy to Clipboard Copied! 指定したトランザクションを元に戻す。
dnf history rollback <transaction_id>
# dnf history rollback <transaction_id>
Copy to Clipboard Copied! たとえば、
wget
およびunzip
パッケージがインストールされる前の状態に戻すには、次のように入力します。dnf history rollback 12
# dnf history rollback 12
Copy to Clipboard Copied! または、トランザクション履歴のすべてのトランザクションを元に戻すには、トランザクション ID 1 を使用します。
dnf history rollback 1
# dnf history rollback 1
Copy to Clipboard Copied!
第9章 カスタムソフトウェアリポジトリーの管理
/etc/dnf/dnf.conf
ファイルまたは /etc/yum.repos.d/
ディレクトリーの .repo
ファイルでリポジトリーを設定できます。
/etc/dnf/dnf.conf
ではなく .repo
ファイルでリポジトリーを定義します。
/etc/dnf/dnf.conf
ファイルには [main]
セクションが含まれており、リポジトリー固有のオプションを設定するために使用できる 1 つ以上のリポジトリーセクション ([<repository-ID>]
) を含めることができます。/etc/dnf/dnf.conf
ファイルの個々のリポジトリーセクションで定義した値は、[main]
セクションで設定されたオーバーライド値です。
9.1. DNF リポジトリーオプション
/etc/dnf/dnf.conf
設定ファイルには、括弧 ([]
) で囲まれた一意のリポジトリー ID を持つリポジトリーセクションが含まれています。このようなセクションを使用して、個々の DNF リポジトリーを定義できます。
[]
内のリポジトリー ID は一意である必要があります。
使用可能なリポジトリー ID オプションの完全なリストについては、dnf.conf(5)
の man ページの [<repository-ID>] OPTIONS
セクションを参照してください。
9.2. DNF リポジトリーの追加
dnf config-manager --add-repo
コマンドを使用して、DNF リポジトリーをシステムに追加できます。
手順
システムにリポジトリーを追加します。
dnf config-manager --add-repo <repository_URL>
# dnf config-manager --add-repo <repository_URL>
Copy to Clipboard Copied! このコマンドによって追加されたリポジトリーはデフォルトで有効になっていることに注意してください。
前のコマンドで
/etc/yum.repos.d/<repository_URL>.repo
ファイルに作成されたリポジトリー設定を確認し、必要に応じて更新します。cat /etc/yum.repos.d/<repository_URL>.repo
# cat /etc/yum.repos.d/<repository_URL>.repo
Copy to Clipboard Copied!
ソフトウェアパッケージを、Red Hat の認証ベース Content Delivery Network
(CDN) 以外の未検証または信頼できないソースから取得してインストールする場合には、セキュリティー上のリスクが伴います。セキュリティー、安定性、互換性、保全性に関する問題につながる恐れがあります。
9.3. DNF リポジトリーの有効化
dnf config-manager
コマンドを使用して、システムに追加された DNF リポジトリーを有効にすることができます。
手順
リポジトリーを有効にします。
dnf config-manager --enable <repository_id>
# dnf config-manager --enable <repository_id>
Copy to Clipboard Copied!
9.4. DNF リポジトリーの無効化
dnf config-manager
コマンドを使用して、システムに追加された DNF リポジトリーを無効にすることができます。
手順
リポジトリーを無効にします。
dnf config-manager --disable <repository_id>
# dnf config-manager --disable <repository_id>
Copy to Clipboard Copied!
付録A DNF コマンドリスト
次のセクションでは、Red Hat Enterprise Linux 10 でコンテンツをリスト表示、インストール、削除するための DNF コマンドについて説明します。
A.1. RHEL でコンテンツをリスト表示するコマンド
以下は、Red Hat Enterprise Linux 10 でコンテンツとその詳細を見つけるためによく使用される DNF コマンドです。
コマンド | 説明 |
---|---|
| パッケージに関連する用語を使用してパッケージを検索します。 |
| 選択したパッケージとそのバージョンの有効な DNF リポジトリーを検索します。 |
| インストール済みおよび利用可能なすべてのパッケージに関する情報を一覧表示します。 |
| システムにインストールされているパッケージを一覧表示します。 |
| インストール可能な有効なリポジトリーにある、すべてのパッケージを一覧表示します。 |
| システムで有効なリポジトリーを一覧表示します。 |
| システムで無効になっているリポジトリーを一覧表示します。 |
| 有効および無効の両方のリポジトリーを一覧表示します。 |
| リポジトリーの追加情報を一覧表示します。 |
| 利用可能なパッケージの詳細を表示します。 |
| システムにインストールされているパッケージの詳細を表示します。 |
| インストールされているグループと利用可能なグループの数を表示します。 |
| インストール済みおよび利用可能なグループを一覧表示します。 |
| 特定のグループに含まれる必須および任意のパッケージを一覧表示します。 |
A.2. RHEL にコンテンツをインストールするためのコマンド
以下は、Red Hat Enterprise Linux 10 にコンテンツをインストールするためによく使用される DNF コマンドです。
コマンド | 説明 |
---|---|
| パッケージのインストール |
| 複数のパッケージとその依存関係を同時にインストールします。 |
| multilib システム (AMD64、Intel 64 マシン) にパッケージをインストールするときに、パッケージ名に追加してパッケージのアーキテクチャーを指定します。 |
| バイナリーへのパスを引数として使用して、バイナリーをインストールします。 |
| ダウンロード済みのパッケージをローカルディレクトリーからインストールします。 |
| パッケージ URL を使用してリモートパッケージをインストールします。 |
| グループ名でパッケージグループをインストールします。 |
| groupID でパッケージグループをインストールします。 |
A.3. RHEL でコンテンツを削除するためのコマンド
以下は、Red Hat Enterprise Linux 10 でコンテンツを削除するためによく使用される DNF コマンドです。
コマンド | 説明 |
---|---|
| 特定のパッケージとすべての依存パッケージを削除します。 |
| 複数のパッケージと、その未使用の依存関係を同時に削除します。 |
| グループ名でパッケージグループを削除します。 |
| groupID でパッケージグループを削除します。 |