DNF ツールを使用したソフトウェアの管理


Red Hat Enterprise Linux 10

DNF ソフトウェア管理ツールを使用した RPM リポジトリー内のコンテンツの管理

Red Hat Customer Content Services

概要

DNF ツールを使用して、RPM リポジトリーを通じて配布されたコンテンツを検索、インストール、利用します。

Red Hat ドキュメントへのフィードバック (英語のみ)

Red Hat ドキュメントに関するご意見やご感想をお寄せください。また、改善点があればお知らせください。

Jira からのフィードバック送信 (アカウントが必要)

  1. Jira の Web サイトにログインします。
  2. 上部のナビゲーションバーで Create をクリックします。
  3. Summary フィールドにわかりやすいタイトルを入力します。
  4. Description フィールドに、ドキュメントの改善に関するご意見を記入してください。ドキュメントの該当部分へのリンクも追加してください。
  5. ダイアログの下部にある 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
    Copy to Clipboard

2.2. DNF メインオプションの設定

/etc/dnf/dnf.conf ファイルには、1 つの [main] セクションが含まれています。このセクションのキーと値のペアは、DNF のリポジトリーの操作方法および処理方法に影響を及ぼします。

手順

  1. /etc/dnf/dnf.conf ファイルを編集します。
  2. 要件に応じて [main] セクションを更新します。
  3. 変更を保存します。

2.3. DNF プラグインの管理

インストールした各プラグインの /etc/dnf/plugins/ ディレクトリーには、それぞれ独自の設定ファイルが含まれている場合があります。このディレクトリー内のプラグイン設定ファイルには、<plug-in_name>.conf という名前を付けます。通常、デフォルトではプラグインが有効になっています。これらの設定ファイルのいずれかでプラグインを無効にするには、ファイルに次の内容を追加します。

[main]
enabled=False
Copy to Clipboard

2.4. DNF プラグインの有効化および無効化

DNF ツールでは、プラグインがデフォルトでロードされます。ただし、DNF がロードするプラグインは制御することができます。

警告

すべてのプラグインの無効化は、潜在的な問題を診断する場合にのみ行ってください。DNF には product-idsubscription-manager などの特定のプラグインが必要です。それらを無効にすると、Red Hat Enterprise Linux はコンテンツ配信ネットワーク (CDN) からソフトウェアをインストールまたは更新できなくなります。

手順

  • 次のいずれかの方法を使用して、DNF がプラグインを使用する方法を制御します。

    • DNF プラグインのロードをシステム全体で有効または無効にするには、/etc/dnf/dnf.conf ファイルの [main] セクションに plugins パラメーターを追加します。

      • すべての DNF プラグインのロードを有効にするには、plugins=1 (デフォルト) を設定します。
      • すべての DNF プラグインのロードを無効にするには、plugins=0 を設定します。
    • 特定のプラグインを無効にするには、/etc/dnf/plugins/<plug-in_name>.conf ファイルの [main] セクションに enabled=False を追加します。
    • 特定のコマンドですべての DNF プラグインを無効にするには、コマンドに --noplugins オプションを追加します。たとえば、1 つの update コマンドで DNF プラグインを無効にするには、次のように入力します。

      # dnf --noplugins update
      Copy to Clipboard
    • 1 つのコマンドで特定の DNF プラグインを無効にするには、コマンドに --disableplugin=plugin-name オプションを追加します。たとえば、1 つの update コマンドで特定の DNF プラグインを無効にするには、次のように入力します。

      # dnf update --disableplugin=<plugin_name>
      Copy to Clipboard
    • 1 つのコマンドで特定の DNF プラグインを有効にするには、コマンドに --enableplugin=plugin-name オプションを追加します。たとえば、1 つの update コマンドで特定の DNF プラグインを有効にするには、次のように入力します。

      # dnf update --enableplugin=<plugin_name>
      Copy to Clipboard

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> ...
    Copy to Clipboard

    または、パッケージ名の代わりに glob 表現を使用して、除外するパッケージを定義します。詳細は、DNF 入力での glob 表現の指定 を参照してください。

第3章 RHEL コンテンツの検索

次のセクションでは、DNF ソフトウェア管理ツールを使用して、AppStream および BaseOS リポジトリー内のコンテンツを見つけて調べる方法について説明します。

3.1. ソフトウェアパッケージの検索

必要なソフトウェアを提供するパッケージを特定するには、DNF を使用してリポジトリーを検索します。

手順

  • シナリオに応じて、次のいずれかのオプションを使用してリポジトリーを検索します。

    • パッケージの名前または概要内の用語を検索するには、次のように入力します。

      $ dnf search <term>
      Copy to Clipboard
    • パッケージの名前、概要、または説明内の用語を検索するには、次のように入力します。

      $ dnf search --all <term>
      Copy to Clipboard

      --all オプションを使用して説明内で追加の検索を行うと、通常の検索操作よりも時間がかかることに注意してください。

    • パッケージ名を検索し、出力にパッケージ名とそのバージョンをリストするには、次のように入力します。

      $ dnf repoquery <package_name>
      Copy to Clipboard
    • ファイルを提供するパッケージを検索するには、ファイル名またはファイルへのパスを指定します。

      $ dnf provides <file_name>
      Copy to Clipboard

3.2. ソフトウェアパッケージのリスト表示

DNF を使用すると、リポジトリーで使用可能なパッケージとそのバージョンのリストを表示できます。必要に応じてこのリストをフィルタリングして、たとえば更新を利用できるパッケージのみをリストすることができます。

手順

  • 利用可能なすべてのパッケージの最新バージョンを、アーキテクチャー、バージョン番号、インストール元のリポジトリーを含めてリスト表示します。

    $ 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

    リポジトリーの前の @ 記号は、この行のパッケージが現在インストールされていることを示します。

    または、使用可能なすべてのパッケージを、バージョン番号とアーキテクチャーを含めて表示するには、次のように入力します。

    $ 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

    必要に応じて、--all の代わりに他のオプションを使用して出力をフィルタリングできます。次に例を示します。

    • インストールされているパッケージのみをリスト表示するには、--installed を使用します。
    • 利用可能なすべてのパッケージをリスト表示するには、--available を使用します。
    • 新しいバージョンを利用できるパッケージをリスト表示するには、--upgrades を使用します。
    注記

    glob 表現を引数として追加することで、結果をフィルタリングできます。詳細は、DNF 入力での glob 表現の指定 を参照してください。

3.3. パッケージ情報の表示

DNF リポジトリーをクエリーして、次のようなパッケージに関する詳細を表示できます。

  • バージョン
  • Release
  • アーキテクチャー
  • パッケージサイズ
  • 説明

手順

  • 1 つ以上の利用可能なパッケージに関する情報を表示します。

    $ dnf info <package_name>
    Copy to Clipboard

    このコマンドは、現在インストールされているパッケージの情報と、リポジトリー内にあるその新しいバージョン (利用可能な場合) の情報を表示します。または、次のコマンドを使用して、指定した名前を持つ、リポジトリー内のすべてのパッケージの情報を表示します。

    $ dnf repoquery --info <package_name>
    Copy to Clipboard
    注記

    glob 表現を引数として追加することで、結果をフィルタリングできます。詳細は、DNF 入力での glob 表現の指定 を参照してください。

3.4. パッケージグループとグループが提供するパッケージのリスト表示

パッケージグループには複数のパッケージをバンドルされています。パッケージグループを使用すると、グループに割り当てられたすべてのパッケージを 1 回の手順でインストールできます。ただし、インストールする前に、必要なパッケージグループの名前を特定する必要があります。

手順

  1. インストールされているグループと使用可能なグループの両方をリストします。

    $ dnf group list
    Copy to Clipboard

    dnf group list コマンドに --installed および --available オプションを追加すると、結果をフィルタリングできます。--hidden オプションを使用すると、出力に非表示のグループを表示できます。

  2. 特定のグループに含まれる必須、オプション、およびデフォルトのパッケージをリストします。

    $ dnf group info "<group_name>"
    Copy to Clipboard
    注記

    glob 表現を引数として追加することで、結果をフィルタリングできます。詳細は、DNF 入力での glob 表現の指定 を参照してください。

  3. オプション: インストール済みおよび利用可能なグループの数を表示します。

    $ dnf group summary
    Copy to Clipboard

3.5. リポジトリーのリスト表示

システムで有効または無効になっているリポジトリーの概要を取得するには、リポジトリーをリスト表示します。

手順

  1. システムで有効になっているすべてのリポジトリーをリスト表示します。

    $ dnf repolist
    Copy to Clipboard

    特定のリポジトリーのみを表示するには、次のいずれかのオプションをコマンドに追加します。

    • --disabled を追加すると、無効なリポジトリーのみがリストされます。
    • --all を追加すると、有効なリポジトリーと無効なリポジトリーの両方がリストされます。
  2. オプション: リポジトリーに関する追加情報をリスト表示します。

    $ dnf repoinfo <repository_name>
    Copy to Clipboard
    注記

    glob 表現を使用して結果をフィルタリングできます。詳細は、DNF 入力での glob 表現の指定 を参照してください。

3.6. DNF 入力での glob 表現の指定

1 つ以上の glob 表現を引数として追加することで、dnf コマンドの結果をフィルタリングできます。

手順

  • dnf コマンドで glob 表現を使用する場合は、次のいずれかの方法を使用します。

    • glob 表現全体を一重引用符または二重引用符で囲みます。

      # dnf provides "*/<file_name>"
      Copy to Clipboard

      <file_name> の前に、絶対パスの場合は / を付ける必要があります。フルパスが不明な場合にワイルドカードを使用するには、*/ を付ける必要があります。

    • ワイルドカード文字の前にはバックスラッシュ (\) を追加して、ワイルドカード文字をエスケープします。

      # dnf provides \*/<file_name>
      Copy to Clipboard

第4章 RHEL コンテンツのインストール

次のセクションでは、DNF ソフトウェア管理ツールを使用して Red Hat Enterprise Linux コンテンツをインストールする方法について説明します。

4.1. パッケージのインストール

ソフトウェアがデフォルトのインストールに含まれていない場合は、手動でインストールできます。DNF は依存関係を自動的に解決してインストールします。

手順

  • 次のいずれかの方法を使用してパッケージをインストールします。

    • リポジトリーからパッケージをインストールするには、次のように入力します。

      # dnf install <package_name_1> <package_name_2> ...
      Copy to Clipboard

      i686x86_64 などの複数のアーキテクチャーをサポートするシステムにパッケージをインストールする場合は、パッケージ名にそれを追加することで、パッケージのアーキテクチャーを指定できます。

      # dnf install <package_name>.<architecture>
      Copy to Clipboard
    • パッケージが提供するファイルへのパスだけがわかっていて、パッケージ名がわからない場合にパッケージをインストールするには、次のパスを使用して対応するパッケージをインストールできます。

      # dnf install <path_to_file>
      Copy to Clipboard
    • ローカル RPM ファイルをインストールするには、次のように入力します。

      # dnf install <path_to_RPM_file>
      Copy to Clipboard

      パッケージに依存関係がある場合は、これらの RPM ファイルへのパスも指定します。指定しなかった場合、DNF はリポジトリーから依存関係をダウンロードします。依存関係がリポジトリーで利用できない場合は失敗します。

4.2. パッケージグループのインストール

パッケージグループには複数のパッケージをバンドルされています。パッケージグループを使用すると、グループに割り当てられたすべてのパッケージを 1 回の手順でインストールできます。

手順

  • パッケージグループをインストールします。

    # dnf group install <group_name_or_ID>
    Copy to Clipboard

第5章 RHEL コンテンツの更新

DNF ソフトウェア管理ツールを使用すると、システムに保留中の更新があるか確認できます。更新が必要なパッケージをリスト表示して、1 つのパッケージ、複数のパッケージ、またはすべてのパッケージを一度に更新できます。更新を選択したパッケージに依存関係がある場合は、これらの依存関係も更新されます。

5.1. 更新の確認

システムにインストールされているパッケージに利用可能な更新があるかどうかを識別するには、それらをリスト表示します。

手順

  • インストールされたパッケージの利用可能な更新を確認します。

    # dnf check-update
    Copy to Clipboard

    このコマンドは、更新が利用可能なパッケージおよびその依存関係のリストを表示します。

5.2. パッケージの更新

DNF を使用すると、単一のパッケージ、パッケージグループ、またはすべてのパッケージとその依存関係を一度に更新できます。

重要

カーネルの更新を適用する際に、dnf は、dnf upgrade コマンドまたは dnf install コマンドを使用しているかどうかに関わらず、新しいカーネルを常にインストールします。これは、installonlypkgs DNF 設定オプションを使用して識別されたパッケージにのみ適用されることに注意してください。このようなパッケージには、たとえば、kernelkernel-core、および kernel-modules パッケージが含まれます。

手順

  • シナリオに応じて、次のいずれかのオプションを使用して更新を適用します。

    • すべてのパッケージとその依存関係を更新するには、次のコマンドを実行します。

      # dnf upgrade
      Copy to Clipboard
    • 単一のパッケージを更新するには、次のように入力します。

      # dnf upgrade <package_name>
      Copy to Clipboard
    • 特定のパッケージグループからのパッケージのみを更新するには、次のように実行します。

      # dnf group upgrade <group_name>
      Copy to Clipboard

第6章 RHEL でのソフトウェア更新の自動化

DNF Automatic は、DNF に対する代替のコマンドラインインターフェイスで、systemd タイマーや cron ジョブなどのツールを使用した自動実行や定期実行に適しています。

DNF Automatic は、必要に応じてパッケージメタデータを同期し、利用可能な更新を確認してから、ツールの設定方法に応じて以下のアクションのいずれかを実行します。

  • 終了
  • 更新済みパッケージのダウンロード
  • 更新のダウンロードおよび適用

その後、標準出力やメールなど、選択したメカニズムによって操作の結果が報告されます。

6.1. DNF Automatic のインストール

パッケージの更新を自動的かつ定期的に確認してダウンロードするには、dnf-automatic パッケージに含まれる DNF Automatic ツールを使用できます。

手順

  • dnf-automatic パッケージをインストールします。

    # dnf install dnf-automatic
    Copy to Clipboard

検証

  • dnf-automatic パッケージが存在することを確認して、インストールが正常に完了したことを確認します。

    # rpm -qi dnf-automatic
    Copy to Clipboard

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>
    Copy to Clipboard

    タイマーをすぐに実行せずに有効にするだけの場合は、--now オプションを省略します。

    次のタイマーを使用できます。

    • dnf-automatic-download.timer: 利用可能な更新をダウンロードします。
    • dnf-automatic-install.timer: 利用可能な更新をダウンロードしてインストールします。
    • dnf-automatic-notifyonly.timer: 利用可能な更新を報告します。
    • dnf-automatic.timer: 利用可能な更新をダウンロード、ダウンロードおよびインストール、または報告します。

検証

  • タイマーが有効化されていることを確認します。

    # systemctl status <systemd timer unit>
    Copy to Clipboard
  • オプション: システム上の各タイマーが最後に実行された時刻を確認します。

    # systemctl list-timers --all
    Copy to Clipboard

6.4. dnf-automatic パッケージに含まれる systemd タイマーユニットの概要

更新のダウンロードおよび適用時に、systemd タイマーユニットが優先され、/etc/dnf/automatic.conf 設定ファイルの設定が上書きされます。

たとえば、/etc/dnf/automatic.conf 設定ファイルで download_updates = yes と設定していても、dnf-automatic-notifyonly.timer ユニットをアクティブにした場合は、パッケージはダウンロードされません。

表6.1 dnf-automatic に含まれる systemd タイマー
タイマーユニット機能/etc/dnf/automatic.conf ファイルの [commands] セクションの apply_updates および download_updates 設定を上書きしますか?

dnf-automatic-download.timer

キャッシュにパッケージをダウンロードし、更新を利用できるようにします。

このタイマーユニットでは更新パッケージはインストールされません。インストールを実行するには、dnf update コマンドを実行する必要があります。

はい

dnf-automatic-install.timer

更新したパッケージをダウンロードしてインストールします。

はい

dnf-automatic-notifyonly.timer

リポジトリーデータのみをダウンロードして、リポジトリーキャッシュを最新の状態に保ち、利用可能な更新を通知します。

このタイマーユニットでは、更新されたパッケージはダウンロードまたはインストールされません。

はい

dnf-automatic.timer

更新のダウンロードおよび適用時のこのタイマーの動作は、/etc/dnf/automatic.conf 設定ファイルの設定により指定されます。

このタイマーはパッケージをダウンロードしますが、インストールはしません。

なし

第7章 RHEL コンテンツの削除

次のセクションでは、DNF ソフトウェア管理ツールを使用して Red Hat Enterprise Linux 10 のコンテンツを削除する方法について説明します。

7.1. インストール済みパッケージの削除

DNF を使用すると、システムにインストールされている単一のパッケージまたは複数のパッケージを削除できます。削除を選択したパッケージに未使用の依存関係がある場合、DNF はこれらの依存関係もアンインストールします。

手順

  • 特定のパッケージを削除します。

    # dnf remove <package_name_1> <package_name_2> ...
    Copy to Clipboard

7.2. パッケージグループの削除

パッケージグループは複数のパッケージをバンドルします。パッケージグループを使用すると、グループに割り当てられているすべてのパッケージを 1 つの手順で削除できます。

手順

  • グループ名またはグループ ID でパッケージグループを削除します。

    # dnf group remove <group_name> <group_id>
    Copy to Clipboard

第8章 パッケージ管理履歴の処理

dnf history コマンドを使用すると、以下の情報を確認できます。

  • DNF トランザクションのタイムライン。
  • トランザクションの発生日時
  • トランザクションの影響を受けたパッケージの数
  • トランザクションの成功または中止の有無
  • トランザクション間で RPM データベースが変更された場合

dnf history コマンドを使用して、トランザクションをやり直すことができます。

8.1. DNF トランザクションのリスト表示

DNF ソフトウェア管理ツールを使用して、次のタスクを実行できます。

  • 最新のトランザクションをリスト表示します。
  • 選択したパッケージの最新の操作をリスト表示します。
  • 特定のトランザクションの詳細を表示します。

手順

  • シナリオに応じて、次のいずれかのオプションを使用してトランザクション情報を表示します。

    • 最新の DNF トランザクションのリストを表示するには、以下のコマンドを実行します。

      # dnf history
      Copy to Clipboard

      出力には、以下の情報が含まれます。

      • Action(s) 列には、トランザクション中に実行されたアクションのタイプが表示されます (例: インストール (I)、アップグレード (U)、削除 (E) など)。
      • Altered 列には、トランザクション中に実行されたアクションの数が表示されます。アクションの数の後に、トランザクションの結果を指定することもできます。

        Action(s) および Altered 列の値の詳細は、dnf(8) の man ページを参照してください。

    • 選択したパッケージの最新操作のリストを表示するには、以下を実行します。

      # dnf history list <package_name>
      Copy to Clipboard
    • 特定のトランザクションの詳細を表示するには、以下のコマンドを実行します。

      # dnf history info <transaction_id>
      Copy to Clipboard
注記

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 コマンドを使用したダウングレードは失敗します。

手順

  1. 元に戻すトランザクションの ID を特定します。

    # 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
  2. オプション: 詳細を表示して、これが元に戻す必要があるトランザクションであることを確認します。

    # dnf history info <transaction_id>
    Copy to Clipboard
  3. トランザクションを元に戻します。

    # dnf history undo <transaction_id>
    Copy to Clipboard

    たとえば、以前にインストールした unzip パッケージをアンインストールする場合は、次のように入力します。

    # dnf history undo 12
    Copy to Clipboard

8.2.2. 複数の DNF トランザクションを元に戻す

dnf history rollback コマンドを使用して、指定したトランザクションと最後のトランザクションの間に実行されたすべての DNF トランザクションを元に戻すことができます。トランザクション ID で指定されたトランザクションは変更されないことに注意してください。

手順

  1. 元に戻したい状態のトランザクション ID を特定します。

    # 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
  2. 指定したトランザクションを元に戻す。

    # dnf history rollback <transaction_id>
    Copy to Clipboard

    たとえば、wget および unzip パッケージがインストールされる前の状態に戻すには、次のように入力します。

    # dnf history rollback 12
    Copy to Clipboard

    または、トランザクション履歴のすべてのトランザクションを元に戻すには、トランザクション ID 1 を使用します。

    # dnf history rollback 1
    Copy to Clipboard

第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 リポジトリーをシステムに追加できます。

手順

  1. システムにリポジトリーを追加します。

    # dnf config-manager --add-repo <repository_URL>
    Copy to Clipboard

    このコマンドによって追加されたリポジトリーはデフォルトで有効になっていることに注意してください。

  2. 前のコマンドで /etc/yum.repos.d/<repository_URL>.repo ファイルに作成されたリポジトリー設定を確認し、必要に応じて更新します。

    # cat /etc/yum.repos.d/<repository_URL>.repo
    Copy to Clipboard
警告

ソフトウェアパッケージを、Red Hat の認証ベース Content Delivery Network (CDN) 以外の未検証または信頼できないソースから取得してインストールする場合には、セキュリティー上のリスクが伴います。セキュリティー、安定性、互換性、保全性に関する問題につながる恐れがあります。

9.3. DNF リポジトリーの有効化

dnf config-manager コマンドを使用して、システムに追加された DNF リポジトリーを有効にすることができます。

手順

  • リポジトリーを有効にします。

    # dnf config-manager --enable <repository_id>
    Copy to Clipboard

9.4. DNF リポジトリーの無効化

dnf config-manager コマンドを使用して、システムに追加された DNF リポジトリーを無効にすることができます。

手順

  • リポジトリーを無効にします。

    # dnf config-manager --disable <repository_id>
    Copy to Clipboard

付録A DNF コマンドリスト

次のセクションでは、Red Hat Enterprise Linux 10 でコンテンツをリスト表示、インストール、削除するための DNF コマンドについて説明します。

A.1. RHEL でコンテンツをリスト表示するコマンド

以下は、Red Hat Enterprise Linux 10 でコンテンツとその詳細を見つけるためによく使用される DNF コマンドです。

コマンド説明

dnf search term

パッケージに関連する用語を使用してパッケージを検索します。

dnf repoquery package

選択したパッケージとそのバージョンの有効な DNF リポジトリーを検索します。

dnf list

インストール済みおよび利用可能なすべてのパッケージに関する情報を一覧表示します。

dnf list --installed

dnf repoquery --installed

システムにインストールされているパッケージを一覧表示します。

dnf list --available

dnf repoquery

インストール可能な有効なリポジトリーにある、すべてのパッケージを一覧表示します。

dnf repolist

システムで有効なリポジトリーを一覧表示します。

dnf repolist --disabled

システムで無効になっているリポジトリーを一覧表示します。

dnf repolist --all

有効および無効の両方のリポジトリーを一覧表示します。

dnf repoinfo

リポジトリーの追加情報を一覧表示します。

dnf info package_name

dnf repoquery --info package_name

利用可能なパッケージの詳細を表示します。

dnf repoquery --info --installed package_name

システムにインストールされているパッケージの詳細を表示します。

dnf group summary

インストールされているグループと利用可能なグループの数を表示します。

dnf group list

インストール済みおよび利用可能なグループを一覧表示します。

dnf group info group_name

特定のグループに含まれる必須および任意のパッケージを一覧表示します。

A.2. RHEL にコンテンツをインストールするためのコマンド

以下は、Red Hat Enterprise Linux 10 にコンテンツをインストールするためによく使用される DNF コマンドです。

コマンド説明

dnf install package_name

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

dnf install package_name_1 package_name_2

複数のパッケージとその依存関係を同時にインストールします。

dnf install package_name.arch

multilib システム (AMD64、Intel 64 マシン) にパッケージをインストールするときに、パッケージ名に追加してパッケージのアーキテクチャーを指定します。

dnf install /usr/sbin/binary_file

バイナリーへのパスを引数として使用して、バイナリーをインストールします。

dnf install /path/

ダウンロード済みのパッケージをローカルディレクトリーからインストールします。

dnf install package_url

パッケージ URL を使用してリモートパッケージをインストールします。

dnf group install group_name

グループ名でパッケージグループをインストールします。

dnf group install group_ID

groupID でパッケージグループをインストールします。

A.3. RHEL でコンテンツを削除するためのコマンド

以下は、Red Hat Enterprise Linux 10 でコンテンツを削除するためによく使用される DNF コマンドです。

コマンド説明

dnf remove package_name

特定のパッケージとすべての依存パッケージを削除します。

dnf remove package_name_1 package_name_2

複数のパッケージと、その未使用の依存関係を同時に削除します。

dnf group remove group_name

グループ名でパッケージグループを削除します。

dnf group remove group_ID

groupID でパッケージグループを削除します。

法律上の通知

Copyright © 2025 Red Hat, Inc.
The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at http://creativecommons.org/licenses/by-sa/3.0/. In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, the Red Hat logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent. Red Hat is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation's permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.
トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2025 Red Hat