ユーザー空間コンポーネントのインストール、管理、および削除


Red Hat Enterprise Linux 8

YUM ソフトウェア管理ツールを使用した BaseOS リポジトリーおよび AppStream リポジトリーでのコンテンツの管理

Red Hat Customer Content Services

概要

YUM ツールを使用して、BaseOS リポジトリーおよび AppStream リポジトリーを介して配布されるコンテンツを検索、インストール、および利用します。パッケージ、モジュール、ストリーム、プロファイルの操作方法を学びます。

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

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

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

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

第1章 Red Hat Enterprise Linux 8 におけるソフトウェア管理ツール

Red Hat Enterprise Linux (RHEL) 8 では、YUM を 使用してソフトウェアを管理します。YUM は、モジュール機能のサポートを追加する DNF テクノロジーに基づいています。

注記

アップストリームのドキュメントでは、このテクノロジーは DNF として識別され、ツールは DNF と呼ばれます。その結果、RHEL 8 の新しい YUM ツールによって返される出力の一部に DNF が 記載されます。

YUM はDNF をベースにしていますが、RHEL 7 で使用される YUM と互換性があります。ソフトウェアのインストールでは、yum コマンドとそのオプションのほとんどが、RHEL 7 で実行したように RHEL 8 で機能します。

選択された YUM プラグインとユーティリティーは新しい DNF バックエンドに移植されており、RHEL 7 と同じ名前でインストールできます。パッケージは互換性シンボリックリンクも提供します。したがって、バイナリー、設定ファイル、およびディレクトリーは通常の場所に見つかります。

注記

RHEL 7 の YUM によって提供される従来の Python API は利用できなくなりました。プラグインとスクリプトを、RHEL 8 の YUM によって提供される新しい DNF Python API に移行できます。詳細は、DNF API リファレンスを 参照してください。

第2章 RHEL 8 のコンテンツの配布

次のセクションでは、Red Hat Enterprise Linux 8 でソフトウェアがどのように配布されるかについて説明します。

2.1. Repositories

Red Hat Enterprise Linux (RHEL) は、次のようなさまざまなリポジトリーを通じてコンテンツを配信します。

BaseOS
BaseOS リポジトリーのコンテンツは、すべてのインストールの基盤を提供する、基礎となるオペレーティングシステム機能のコアセットで構成されています。このコンテンツは RPM 形式で提供されており、RHEL の以前のリリースと同様のサポート条件が適用されます。
AppStream

AppStream リポジトリーには、さまざまなワークロードとユースケースに対応するために、ユーザー空間アプリケーション、ランタイム言語、およびデータベースが同梱されます。AppStream のコンテンツは次の形式で利用できます。

  • RPM パッケージ
  • RPM 形式の拡張であるモジュール
重要

BaseOS コンテンツセットと AppStream コンテンツセットは両方とも RHEL に必要であり、すべての RHEL サブスクリプションで利用できます。インストール手順については、インストールメディアから RHEL を対話形式でインストールする を参照してください。

CodeReady Linux Builder
CodeReady Linux Builder リポジトリーは、すべての RHEL サブスクリプションで利用できます。このリポジトリーは、開発者向けの追加パッケージを提供します。Red Hat は、CodeReady Linux Builder リポジトリーに含まれるパッケージをサポートしていません。

2.2. Application Streams

Red Hat Enterprise Linux (RHEL) 8 では、アプリケーションストリームと呼ばれるユーザー空間コンポーネントの複数バージョンの概念が導入されています。これらのコンポーネントは、コアオペレーティングシステムパッケージよりも頻繁に配信および更新されます。これにより、プラットフォームや特定のデプロイメントの基盤となる安定性に影響を与えることなく、Red Hat Enterprise Linux RHEL をより柔軟にカスタマイズできるようになります。アプリケーションストリームは、AppStream リポジトリーを通じて配信されます。

Application Streams は以下の形式で利用できます。

  • RPM パッケージ
  • RPM 形式の拡張であるモジュール
重要

各アプリケーションストリームには独自のライフサイクルがあり、RHEL 8 のライフサイクルと同じかそれより短くなります。詳細は、Red Hat Enterprise Linux アプリケーションストリームのライフサイクル を参照してください。

インストールする必要がある Application Stream のバージョンを常に確認してください。その際には、まず RHEL Application Stream のライフサイクルを必ず確認してください。

2.3. モジュールの概要

モジュールは、コンポーネントを表す RPM パッケージのセットです。一般的なモジュールには次のパッケージタイプが含まれます。

  • アプリケーションを含むパッケージ
  • アプリケーション固有の依存関係ライブラリーを含むパッケージ
  • アプリケーションのドキュメントを含むパッケージ
  • ヘルパーユーティリティーを含むパッケージ

2.3.1. モジュールストリーム

モジュールのストリームは、AppStream 物理リポジトリーで仮想的なリポジトリーとして扱えるフィルターです。モジュールストリームは、AppStream コンポーネントのバージョンです。各ストリームは別々に更新を受信し、他のモジュールストリームに依存している場合があります。

モジュールストリームは、アクティブまたは非アクティブにできます。アクティブなストリームにより、システムは特定のモジュールストリーム内の RPM パッケージにアクセスできるようになり、それぞれのコンポーネントバージョンをインストールできるようになります。

ストリームは次の場合にアクティブになります。

  • 管理者が明示的に有効にした場合。
  • ストリームが有効なモジュールの依存関係である場合。
  • ストリームがデフォルトのストリームの場合。各モジュールは、デフォルトのストリームを持つことができます。デフォルトのストリームは、モジュールについて学ぶ必要はなく、通常の方法で RHEL パッケージを簡単に使用できます。モジュール全体が無効になっているか、そのモジュールの別のストリームが有効になっている場合を除き、デフォルトのストリームはアクティブです。

あるモジュールの中で同時にアクティブにできるストリームは 1 つだけです。したがって、1 つのシステムにインストールできるコンポーネントは、1 つのバージョンだけです。複数のコンテナーで異なるバージョンを使用できます。

重要

デフォルトのストリームは、RHEL メジャーリリースでは変更されません。各ストリームの ライフサイクル を常に考慮してください。RHEL メジャーリリースの終了前に、デフォルトのストリームがライフサイクルの終了日に到達するインスタンスのデフォルトストリームに依存しないでください。

特定のモジュールストリームは、その他のモジュールストリームに依存します。たとえば、次のモジュールストリームは特定の Perl モジュールストリームに依存します。

  • perl-App-cpanminus
  • perl-DBD-MySQL
  • perl-DBD-Pg
  • perl-DBD-SQLite
  • perl-DBI
  • perl-YAML
  • freeradius

ランタイムユーザーアプリケーションまたは開発者アプリケーションに特定のストリームを選択する前に、次の点を考慮してください。

  • 必要な機能と、それをサポートするコンポーネントのバージョン。
  • アプリケーションまたはユースケースとの互換性。
  • アプリケーションストリームの ライフサイクル と更新計画。

利用可能なモジュールおよびストリームのリストは パッケージマニフェスト を参照してください。コンポーネント別の変更は、リリースノート を参照してください。

2.3.2. モジュールプロファイル

モジュールプロファイルは、サーバー、クライアント、開発、最小インストールなど、特定のユースケースでまとめてインストールされる推奨パッケージのリストです。このパッケージリストは、モジュールストリームに含まれないパッケージ (通常は BaseOS リポジトリー、またはそのストリームの依存関係) も含みます。

利便性のため、プロファイル (一度の操作で完了) を利用してパッケージのインストールを行えます。そのモジュールが提供する任意のパッケージをインストールおよびアンインストールすることへの影響はありません。同じモジュールストリームから複数のプロファイルを利用してパッケージをインストールすることも、特に準備などを行わずに行えます。

各モジュールストリームではプロファイル数に制限がありません (ゼロにすることも可能)。特定のモジュールストリームでは、そのプロファイルの一部をデフォルトとしてマークすることができ、プロファイルを明示的に指定しなかった場合は、プロファイルのインストールアクションに使用されます。ただし、モジュールストリームのデフォルトプロファイルは必須ではありません。

例2.1 httpd モジュールプロファイル

Apache Web サーバーを提供する httpd モジュールは、インストール用に次のプロファイルを提供します。

# yum module list httpd
Name           Stream           Profiles                            Summary
httpd          2.4 [d]          common [d], devel, minimal          Apache HTTP Server

Hint: [d]efault, [e]nabled, [x]disabled, [i]nstalled
Copy to Clipboard

この例では、次のプロファイルが利用可能です。

  • common : 実稼働対応パッケージ。これはデフォルトのプロファイル ([d]) です。
  • devel : httpd に変更を加えるために必要なパッケージ。
  • minimal : 実行中の Apache Web サーバーを提供するパッケージの最小セット。

第3章 YUM の設定

YUM および関連ユーティリティーの設定情報は、/etc/yum.conf ファイルに保存されます。このファイルには、グローバルな効果を持つ YUM オプションを設定するために使用できる必須の [main] セクションが含まれています。

3.1. 現在の YUM の設定を表示する

/etc/yum.conf ファイルの [main] セクションには、明示的に設定された設定のみが含まれます。ただし、[main] セクションの設定はすべて表示することができます。これには、未設定でデフォルト値が使用されている設定も含まれます。

手順

  • グローバル YUM 設定を表示します。

    # yum config-manager --dump
    Copy to Clipboard

3.2. YUM のメインオプションの設定

/etc/yum.conf 設定ファイルには 1 つの [main] セクションが含まれています。このセクションのキーと値のペアは、YUM の 動作とリポジトリーの処理方法に影響します。

手順

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

3.3. YUM プラグインの有効化と無効化

YUM ツールでは、プラグインはデフォルトでロードされます。ただし、YUM が ロードするプラグインに影響を与えることはできます。

警告

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

手順

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

    • YUM プラグインの読み込みをグローバルに有効または無効にするには、/etc/dnf/dnf.conf ファイルの [main] セクションに plugins パラメーターを追加します。

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

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

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

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

3.4. YUM 操作からパッケージを除外する

excludepkgs オプションを使用して、YUM 操作からパッケージを除外するように YUM を設定できます。/etc/yum.conf ファイルの [main] またはリポジトリーセクションで excludepkgs を 定義できます。

注記

--disableexcludes オプションを使用すると、設定済みパッケージを操作から除外することを一時的に無効にできます。

手順

  • /etc/yum.conf ファイルに次の行を追加して、YUM 操作からパッケージを除外します。

    excludepkgs=<package_name_1>,<package_name_2> ...
    Copy to Clipboard

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

第4章 RHEL 8 コンテンツの検索

次のセクションでは、YUM を 使用して Red Hat Enterprise Linux 8 の AppStream および BaseOS リポジトリー内のコンテンツを検索して調べる方法について説明します。

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

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

手順

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

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

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

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

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

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

YUM を 使用すると、リポジトリーで使用可能なパッケージとそのバージョンのリストを表示できます。

手順

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

    $ yum list --all
    ...
    cups.x86_64           1:2.2.6-57.el8       @rhel-AppStream
    cups-client.x86_64    1:2.2.6-57.el8       @rhel-AppStream
    cups-devel.i686       1:2.2.6-57.el8       rhel-AppStream
    cups-devel.x86_64     1:2.2.6-57.el8       rhel-AppStream
    ...
    Copy to Clipboard

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

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

    $ yum list --all
    ...
    cups-1:2.2.6-57.el8.x86_64
    cups-client-1:2.2.6-57.el8.x86_64
    cups-devel-1:2.2.6-57.el8.i686
    cups-devel-1:2.2.6-57.el8.x86_64
    ...
    Copy to Clipboard

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

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

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

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

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

手順

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

    # yum repolist
    Copy to Clipboard

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

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

    # yum repoinfo <repository_name>
    Copy to Clipboard
    注記

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

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

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

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

手順

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

    # yum info <package_name>
    Copy to Clipboard

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

注記

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

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

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

手順

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

    # yum group list
    Copy to Clipboard

    yum group list コマンドに --installed および --available オプションを追加することで、結果をフィルタリングできることに注意してください。--hidden オプションを使用すると、出力に隠しグループを表示できます。

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

    # yum group info <group_name>
    Copy to Clipboard
    注記

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

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

    # yum group summary
    Copy to Clipboard

4.6. 利用可能なモジュールとその内容の一覧表示

YUM を使用してモジュールを検索し、その情報を表示することで、リポジトリーで使用可能なモジュールを識別し、モジュールをインストールする前に適切なストリームを選択できます。

手順

  1. 次のいずれかの方法でモジュール情報をリスト表示します。

    • 利用可能なすべてのモジュールをリストします。

      $ yum module list
      Name         Stream   Profiles                                Summary
      ...
      nodejs       18       common [d], development, minimal, s2i   Javascript runtime
      postgresql   15       client, server [d]                      PostgreSQL server and client module
      ...
      
      Hint: [d]efault, [e]nabled, [x]disabled, [i]nstalled
      Copy to Clipboard

      特定のモジュールについてのみ同じ情報をリスト表示するには 、yum module list <module_name> コマンドを使用します。

    • どのモジュールが特定のパッケージを提供しているかを検索します。

      $ yum module provides <package_name>
      Copy to Clipboard

      たとえば、npm パッケージを提供するモジュールとプロファイルを表示するには、次のように入力します。

      $ yum module provides npm
      ...
      npm-1:8.19.4-1.16.20.2.4.module+el8.9.0+21536+8fdee1fb.x86_64
      Module   : nodejs:16:8090020240315081818:a75119d5:x86_64
      Profiles : common development s2i
      Repo     : rhel-AppStream
      Summary  : Javascript runtime
      ...
      Copy to Clipboard
  2. モジュールの詳細をリスト表示するには、次のいずれかの方法を使用します。

    • 説明、すべてのプロファイルのリスト、モジュールが提供するすべてのパッケージのリストなど、モジュールに関するすべての詳細をリストします。

      $ yum module info <module_name>
      Copy to Clipboard

      たとえば、nodejs モジュールの詳細を表示するには、次のように入力します。

      $ yum module info nodejs
      ...
      Name             : nodejs
      Stream           : 20
      Version          : 8090020240228165436
      Context          : a75119d5
      Architecture     : x86_64
      Profiles         : common [d], development, minimal, s2i
      Default profiles : common
      Repo             : rhel-AppStream
      Summary          : Javascript runtime
      Description      : Node.js is a platform built on Chrome's JavaScript runtime for easily building fast, scalable network applications. Node.js uses an event-driven, non-blocking I/O model that makes it lightweight and efficient, perfect for data-intensive real-time applications that run across distributed devices.
      Requires         : platform:[el8]
      Artifacts        : nodejs-1:20.11.1-1.module+el8.9.0+21380+12032667.src
                       : nodejs-1:20.11.1-1.module+el8.9.0+21380+12032667.x86_64
      ...
      Copy to Clipboard
    • 各モジュールプロファイルがインストールするパッケージをリストします。

      $ yum module info --profile <module_name>
      Copy to Clipboard
      注記

      各プロファイルは、依存関係を含む複数のパッケージセットをインストールします。

      たとえば、nodejs モジュールのこの情報を表示するには、次のように入力します。

      $ yum module info --profile nodejs
      ...
      Name        : nodejs:18:8090020240301110609:a75119d5:x86_64
      common      : nodejs
                  : npm
      development : nodejs
                  : nodejs-devel
                  : npm
      minimal     : nodejs
      s2i         : nodejs
                  : nodejs-nodemon
                  : npm
      ...
      Copy to Clipboard

4.7. YUM 入力でのグローバル表現の指定

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

手順

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

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

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

      絶対パスの場合は <file_name> の前にバックスラッシュ (/) 文字を付けるか、完全なパスが不明な場合はワイルドカードを使用するために */を 付ける必要があります。

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

      # yum provides \*/<file-name>
      Copy to Clipboard

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

次のセクションでは、YUM を 使用して Red Hat Enterprise Linux 8 にコンテンツをインストールする方法について説明します。

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

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

前提条件

  • オプション: インストールするパッケージの名前がわかっています
  • インストールするパッケージがモジュールストリームによって提供されている場合、それぞれのモジュールストリームが有効になっている。詳細は、モジュールストリームの有効化 を参照してください。

    注記

    パッケージがデフォルトとしてマークされたモジュールストリームによって提供される場合、yum は このパッケージをインストールする前にそのモジュールストリームを自動的に有効にします。

手順

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

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

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

      AMD64 や Intel 64 など、複数のアーキテクチャーをサポートするシステムにパッケージをインストールする場合は、パッケージ名にアーキテクチャーを追加してパッケージのアーキテクチャーを指定できます。

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

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

      # yum install <path_to_RPM_file>
      Copy to Clipboard

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

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

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

手順

  • パッケージグループをインストールするには、次のいずれかの方法を使用します。

    • グループ名でパッケージグループをインストールするには、次のいずれかのコマンドを入力します。

      # yum group install <group_name>
      # yum install @<group_name>
      Copy to Clipboard
    • グループ ID でパッケージグループをインストールするには、次のように入力します。

      # yum group install <group_ID>
      Copy to Clipboard

5.3. モジュールストリームを有効にする

インストールするパッケージがモジュールストリームによって提供される場合は、それぞれのモジュールストリームを有効にする必要があります。

注記

パッケージがデフォルトとしてマークされたモジュールストリームによって提供される場合、yum は このパッケージをインストールする前にそのモジュールストリームを自動的に有効にします。

重要

インストールには常に特定のモジュールストリームを選択することを推奨します。各ストリームの ライフサイクル を常に考慮してください。

特定のデフォルトモジュールストリームは、RHEL メジャーリリースの終了前にライフサイクル終了ステータスに達することに注意してください。

手順

  • モジュールストリームを有効にします。

    # yum module enable <module_name>:<stream>
    Copy to Clipboard
    注記

    モジュールの別のストリームがデフォルトであったために以前はアクティブであった場合、そのストリームは非アクティブになります。

5.4. モジュールコンテンツのインストール

特定のソフトウェアについては、Red Hat がモジュールを提供します。モジュールを使用して、特定のバージョン (ストリーム) とパッケージのセット (プロファイル) をインストールできます。

重要

モジュールストリームの ライフサイクル を常に考慮してください。

前提条件

  • 同じモジュールの別のストリームからパッケージをインストールしていない。

手順

  1. インストールするパッケージを提供するモジュールをリスト表示します。

    # yum module list <module_name>
    Copy to Clipboard

    たとえば、postgresql-server パッケージを提供するモジュールをリスト表示するには、次のように入力します。

    $ yum module list postgresql
    Name        Stream  Profiles            Summary
    postgresql  9.6     client, server [d]  PostgreSQL server and client module
    postgresql  10 [d]  client, server [d]  PostgreSQL server and client module
    postgresql  12      client, server [d]  PostgreSQL server and client module
    postgresql  13      client, server [d]  PostgreSQL server and client module
    postgresql  15      client, server [d]  PostgreSQL server and client module
    
    Hint: [d]efault, [e]nabled, [x]disabled, [i]nstalled
    Copy to Clipboard

    出力は、postgresql モジュールがストリーム 9.61012、および 13 で使用できることを示しています。デフォルトのストリームは 10 ([d]) です。

  2. 選択したモジュールストリームをインストールします。

    # yum module install <module-name>:<stream>/<profile>
    Copy to Clipboard

    ストリームのデフォルトプロファイルが定義されている場合は、コマンドで /<profile> を省略して、ストリームのこのデフォルトプロファイルをインストールできます。

    たとえば、postgresql モジュールのストリーム 13 のデフォルトプロファイル (server) をインストールするには、次のように入力します。

    # yum module install postgresql:13
    ...
    Dependencies resolved.
    ===================================================================================================================
     Package                  Architecture  Version                                        Repository             Size
    ===================================================================================================================
    Installing group/module packages:
     postgresql-server        x86_64        13.10-1.module+el8.7.0+18279+1ca8cf12          rhel-AppStream        5.6 M
    Installing dependencies:
     libicu                   x86_64        60.3-2.el8_1                                   rhel                  8.8 M
     libpq                    x86_64        13.5-1.el8                                     rhel-AppStream        198 k
     postgresql               x86_64        13.10-1.module+el8.7.0+18279+1ca8cf12          rhel-AppStream        1.5 M
    Installing module profiles:
     postgresql/server
    Enabling module streams:
     postgresql                             13
    Copy to Clipboard

検証

  • 正しいモジュールストリームが有効になっており ([e])、必要なプロファイルがインストールされている ([i]) ことを確認します。

    # yum module list postgresql
    ...
    Name                Stream          Profiles                       Summary
    postgresql          9.6             client, server [d]             PostgreSQL server and client module
    postgresql          10 [d]          client, server [d]             PostgreSQL server and client module
    postgresql          12              client, server [d]             PostgreSQL server and client module
    postgresql          13 [e]          client, server [d] [i]         PostgreSQL server and client module
    postgresql          15              client, server [d]             PostgreSQL server and client module
    postgresql          16              client, server [d]             PostgreSQL server and client module
    
    Hint: [d]efault, [e]nabled, [x]disabled, [i]nstalled
    Copy to Clipboard

5.5. インストール用のパッケージの詳細を指定する

正確なパッケージインストールプロセスのためにパッケージの詳細を指定できます。これを行うには、yum install コマンドに次の接尾辞を追加して、引数を解析する方法を明示的に定義します。

  • パッケージの正確な名前を指定するには -n を使用します。
  • 正確なパッケージ名とアーキテクチャーを指定するには、-na を 使用します。
  • -nevra を 使用して、正確なパッケージ名、エポック、バージョン、リリース、およびアーキテクチャーを指定します。

手順

  • シナリオに応じて、次のいずれかのオプションを使用してパッケージのインストールプロセスを最適化します。

    • 正確な名前を使用してパッケージをインストールするには、次のように入力します。

      # yum install-n <package_name>
      Copy to Clipboard
    • 正確な名前とアーキテクチャーを使用してパッケージをインストールするには、次のように入力します。

      # yum install-na <package_name>.<architecture>
      Copy to Clipboard
    • 正確な名前、エポック、バージョン、リリース、アーキテクチャーを使用してパッケージをインストールするには、次のように入力します。

      # yum install-nevra <package_name>-<epoch>:<version>-<release>.<architecture>
      Copy to Clipboard

第6章 RHEL 8 コンテンツの更新

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

6.1. 更新の確認

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

手順

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

    # yum check-update
    Copy to Clipboard

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

6.2. パッケージの更新

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

重要

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

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

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

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

      # yum update <package_name>
      Copy to Clipboard
重要

BIOS または IBM Power システムで GRUB ブートローダーパッケージをアップグレードした場合は、GRUB を再インストールします。GRUB の再インストール を参照してください。

6.3. パッケージグループの更新

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

手順

  • 特定のパッケージグループからパッケージを更新します。

    # yum group update <group_name>
    Copy to Clipboard
重要

BIOS または IBM Power システムで GRUB ブートローダーパッケージをアップグレードした場合は、GRUB を再インストールします。GRUB の再インストール を参照してください。

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

DNF Automatic は、 systemd タイマー、cron ジョブ、その他のツールを使用して自動かつ定期的に実行するのに適した、YUM の代替コマンドラインインターフェイスです。

DNF Automatic は、 必要に応じてパッケージメタデータを同期し、利用可能な更新プログラムをチェックし、ツールの設定方法に応じて次のいずれかのアクションを実行します。

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

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

7.1. DNF Automatic のインストール

パッケージの更新の確認とダウンロードを定期的に行うには、dnf-automatic パッケージの DNF Automatic ツールを使用できます。

手順

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

    # yum install dnf-automatic
    Copy to Clipboard

検証

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

    # rpm -qi dnf-automatic
    Copy to Clipboard

7.2. DNF Automatic 設定ファイル

デフォルトでは、DNF Automatic は、動作を定義するための設定ファイルとして /etc/dnf/automatic.conf を使用します。

設定ファイルは、以下のトピックセクションに分かれています。

  • [commands]

    DNF Automatic の操作モードを設定します。

    警告

    [commands] セクションの操作モードの設定は、dnf-automatic.timer 以外のすべてのタイマーユニットに対して、systemd タイマーユニットで使用される設定によって上書きされます。

  • [emitters]

    DNF Automatic の結果が報告される方法を定義します。

  • [コマンド] セクション

    コマンドエミッタ設定を提供します。

  • [command_email]

    電子メールの送信に使用する外部コマンドのメールエミッター設定を提供します。

  • [email]

    電子メールエミッターの設定を提供します。

  • [base]

    YUM のメイン設定ファイルからのオーバーライド設定。

/etc/dnf/automatic.conf のデフォルト設定では、DNF Automatic は、利用可能な更新を自動的にチェックし、ダウンロードして、結果を標準出力として報告します。

7.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 <timer_name>
    Copy to Clipboard
  • オプション: システム上の各タイマーが最後に実行された時刻を確認します。

    # systemctl list-timers --all
    Copy to Clipboard

7.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 設定を上書きしますか?

dnf-automatic-download.timer

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

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

はい

dnf-automatic-install.timer

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

はい

dnf-automatic-notifyonly.timer

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

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

はい

dnf-automatic.timer

更新をダウンロードして適用する際のこのタイマーの動作は、/etc/dnf/automatic.conf ファイルの設定によって指定されます。

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

いいえ

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

次のセクションでは、YUM を 使用して Red Hat Enterprise Linux 8 のコンテンツを削除する方法について説明します。

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

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

手順

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

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

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

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

手順

  • パッケージグループをインストールするには、次のいずれかの方法を使用します。

    • グループ名でパッケージグループを削除するには、次のいずれかのコマンドを入力します。

      # yum group remove <group_name>
      # yum remove @<group_name>
      Copy to Clipboard
    • グループ ID によってパッケージグループを削除するには、次のように入力します。

      # yum group remove <group_ID>
      Copy to Clipboard

8.3. インストールしたモジュラーコンテンツの削除

インストールされたモジュールコンテンツを削除する場合、選択したプロファイル または ストリーム全体 からパッケージを削除できます。

重要

YUM は、 プロファイルまたはストリームでインストールされたパッケージに対応する名前を持つすべてのパッケージを、依存パッケージも含めて削除しようとします。(特にシステムでカスタムリポジトリーを有効にしている場合は) 続行する前に、削除するパッケージのリストを常に確認してください。

8.3.1. インストール済みプロファイルからのパッケージの削除

プロファイルとともにインストールしたパッケージを削除すると、そのプロファイルによりインストールされたパッケージに対応する名前を持つパッケージがすべて削除されます。これには、依存関係も含まれます。ただし、別のプロファイルで必要とされるパッケージは除外されます。

選択したストリームからすべてのパッケージを削除するには、モジュールストリームからすべてのパッケージを削除する の手順を完了します。

前提条件

  • 選択したプロファイルは 、yum module install module_name : stream/プロファイル コマンドを使用してインストールされるか、yum install module_name : stream コマンドを使用してデフォルトプロファイルとしてインストールされます。

手順

  • 選択したプロファイルに属するパッケージをアンインストールします。

    # yum module remove <module_name>:<stream>/<profile>
    Copy to Clipboard

    たとえば、php:7.3 モジュールストリームの devel プロファイルからパッケージを削除するには、次のように入力します。

    # yum module remove php:7.3/devel
    (...)
    Dependencies resolved.
    =========================================================================
     Package                Arch   Version                       Repository                         Size
    =========================================================================
    Removing:
     libzip                 x86_64 1.5.2-1.module+el8.1.0+3189+a1bff096
                                                                 @rhel-8-for-x86_64-appstream-rpms 313 k
     php-devel              x86_64 7.3.5-5.module+el8.1.0+4560+e0eee7d6
                                                                 @rhel-8-for-x86_64-appstream-rpms 5.3 M
     php-pear               noarch 1:1.10.9-1.module+el8.1.0+3189+a1bff096
                                                                 @rhel-8-for-x86_64-appstream-rpms 2.1 M
     php-pecl-zip           x86_64 1.15.4-1.module+el8.1.0+3189+a1bff096
                                                                 @rhel-8-for-x86_64-appstream-rpms 119 k
     php-process            x86_64 7.3.5-5.module+el8.1.0+4560+e0eee7d6
                                                                 @rhel-8-for-x86_64-appstream-rpms 117 k
    Removing unused dependencies:
     autoconf               noarch 2.69-27.el8                   @rhel-8-for-x86_64-appstream-rpms 2.2 M
    ...
    Disabling module profiles:
     php/devel
    
    Transaction Summary
    =========================================================================
    Remove  64 Packages
    
    Freed space: 193 M
    Is this ok [y/N]: y
    Copy to Clipboard
    警告

    削除トランザクションに進む前に、Removing: および Removing unused dependencies: にあるパッケージのリストを確認してください。このトランザクションにより、要求されたパッケージ、未使用の依存関係、および依存パッケージが削除され、システム障害が発生する可能性があります。

    または、ストリームにインストールされているすべてのプロファイルからパッケージをアンインストールします。

    # yum module remove <module_name>:<stream>
    Copy to Clipboard
    注記

    この操作は、プロファイルに属さないパッケージをストリームから削除しません。

検証

  • 正しいプロファイルが削除されたことを確認します。

    $ yum module info php
    ...
    Name             : php
    Stream           : 7.3 [e] [a]
    Version          : 8020020200715124551
    Context          : ceb1cf90
    Architecture     : x86_64
    Profiles         : common [d] [i], devel, minimal [i]
    Default profiles : common
    Repo             : rhel-AppStream
    ...
    Hint: [d]efault, [e]nabled, [x]disabled, [i]nstalled, [a]ctive
    Copy to Clipboard

    現在、devel 以外のすべてのプロファイルがインストールされています ([i])。

8.3.2. モジュールストリームから全パッケージを削除

モジュールストリームでインストールしたパッケージを削除すると、そのストリームによりインストールされたパッケージに対応する名前を持つパッケージがすべて削除されます。これには、その依存関係も含まれます。ただし、その他のモジュールで必要なパッケージは除外されます。

選択したプロファイルからパッケージのみを削除するには、インストールされたプロファイルからパッケージを削除する の手順を完了します。

前提条件

  • モジュールストリームが有効になっており、ストリームからの少なくともいくつかのパッケージがインストールされています。

手順

  1. 選択したストリームからパッケージをすべて削除します。

    # yum module remove --all <module_name>:<stream>
    Copy to Clipboard

    たとえば、php:7.3 モジュールストリームからすべてのパッケージを削除するには、次のように入力します。

    # yum module remove --all php:7.3
    (...)
    Dependencies resolved.
    =========================================================================
     Package                Arch   Version                       Repository                         Size
    =========================================================================
    Removing:
     libzip                 x86_64 1.5.2-1.module+el8.1.0+3189+a1bff096
                                                                 @rhel-8-for-x86_64-appstream-rpms 313 k
     php-cli                x86_64 7.3.5-5.module+el8.1.0+4560+e0eee7d6
                                                                 @rhel-8-for-x86_64-appstream-rpms  11 M
     php-common             x86_64 7.3.5-5.module+el8.1.0+4560+e0eee7d6
                                                                 @rhel-8-for-x86_64-appstream-rpms 6.5 M
     php-devel              x86_64 7.3.5-5.module+el8.1.0+4560+e0eee7d6
                                                                 @rhel-8-for-x86_64-appstream-rpms 5.3 M
     php-fpm                x86_64 7.3.5-5.module+el8.1.0+4560+e0eee7d6
                                                                 @rhel-8-for-x86_64-appstream-rpms 5.6 M
     php-json               x86_64 7.3.5-5.module+el8.1.0+4560+e0eee7d6
                                                                 @rhel-8-for-x86_64-appstream-rpms  53 k
     php-mbstring           x86_64 7.3.5-5.module+el8.1.0+4560+e0eee7d6
                                                                 @rhel-8-for-x86_64-appstream-rpms 1.9 M
     php-pear               noarch 1:1.10.9-1.module+el8.1.0+3189+a1bff096
                                                                 @rhel-8-for-x86_64-appstream-rpms 2.1 M
     php-pecl-zip           x86_64 1.15.4-1.module+el8.1.0+3189+a1bff096
                                                                 @rhel-8-for-x86_64-appstream-rpms 119 k
     php-process            x86_64 7.3.5-5.module+el8.1.0+4560+e0eee7d6
                                                                 @rhel-8-for-x86_64-appstream-rpms 117 k
     php-xml                x86_64 7.3.5-5.module+el8.1.0+4560+e0eee7d6
                                                                 @rhel-8-for-x86_64-appstream-rpms 557 k
    Removing unused dependencies:
     autoconf               noarch 2.69-27.el8                   @rhel-8-for-x86_64-appstream-rpms 2.2 M
    ...
    Disabling module profiles:
     php/common
     php/devel
     php/minimal
    
    Transaction Summary
    =========================================================================
    Remove  73 Packages
    
    Freed space: 220 M
    Is this ok [y/N]: y
    Copy to Clipboard
    警告

    削除トランザクションに進む前に、Removing: および Removing unused dependencies: にあるパッケージのリストを確認してください。このトランザクションにより、要求されたパッケージ、未使用の依存関係、および依存パッケージが削除され、システム障害が発生する可能性があります。

  2. オプション: 次のいずれかのコマンドを入力して、ストリームをリセットまたは無効にします。

    # yum module reset <module_name>
    # yum module disable <module_name>
    Copy to Clipboard

検証

  • 選択したモジュールストリームからすべてのパッケージが削除されたことを確認します。

    $ yum module info php
    ...
    Name             : php
    Stream           : 7.3 [e] [a]
    Version          : 8020020200715124551
    Context          : ceb1cf90
    Architecture     : x86_64
    Profiles         : common [d], devel, minimal
    Default profiles : common
    ...
    Hint: [d]efault, [e]nabled, [x]disabled, [i]nstalled, [a]ctive
    Copy to Clipboard

    PHP モジュールの 7.3 ストリームは現在有効になっています ([e]) が、このストリームのパッケージはインストールされていません ([i])。

8.4. 削除するパッケージの詳細を指定する

正確なパッケージ削除プロセスのためにパッケージの詳細を指定できます。これを行うには、yum remove コマンドに次の接尾辞を追加して、引数を解析する方法を明示的に定義します。

  • パッケージの正確な名前を指定するには -n を使用します。
  • 正確なパッケージ名とアーキテクチャーを指定するには、-na を 使用します。
  • -nevra を 使用して、正確なパッケージ名、エポック、バージョン、リリース、およびアーキテクチャーを指定します。

手順

  • シナリオに応じて、次のいずれかのオプションを使用してパッケージ削除プロセスを最適化します。

    • 正確な名前を使用してパッケージを削除するには、次のように入力します。

      # yum remove-n <package_name>
      Copy to Clipboard
    • 正確な名前とアーキテクチャーを使用してパッケージを削除するには、次のように入力します。

      # yum remove-na <package_name>.<architecture>
      Copy to Clipboard
    • 正確な名前、エポック、バージョン、リリース、アーキテクチャーを使用してパッケージを削除するには、次のように入力します。

      # yum remove-nevra <package_name>-<epoch>:<version>-<release>.<architecture>
      Copy to Clipboard

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

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

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

yum history コマンドを使用してトランザクションを元に戻すこともできます。

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

YUM を 使用して次のタスクを実行できます。

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

手順

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

    • 最新の YUM トランザクションのリストを表示するには、次のように入力します。

      # yum history
      Copy to Clipboard

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

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

        アクション 列と 変更 列の値の詳細は、システムの yum (8) man ページを参照してください。

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

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

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

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

9.2. YUM トランザクションを元に戻す

YUM トランザクションを元に戻すことは、トランザクション中に実行された操作を元に戻したい場合に役立ちます。たとえば、yum install コマンドを使用して複数のパッケージをインストールした場合、インストールトランザクションを元に戻すことで、これらのパッケージを一度にアンインストールできます。

YUM トランザクションを次の方法で元に戻すことができます。

  • yum history undo コマンドを使用して、単一の YUM トランザクションを元に戻します。
  • yum history rollback コマンドを使用して、指定されたトランザクションと最後のトランザクションの間に実行されたすべての YUM トランザクションを元に戻します。
重要

yum history undo コマンドyum history rollback コマンドを使用して RHEL システムパッケージを古いバージョンにダウングレードすることはサポートされていません。これは特に、selinuxselinux-policy-*kernel、および glibc パッケージ、ならびに gcc などの glibc の依存関係に関係します。したがって、システムをマイナーバージョンにダウングレードすると (たとえば、RHEL 8.1 から RHEL 8.0 に)、システムが不正な状態になる可能性があるため、推奨されません。

9.2.1. 単一の YUM トランザクションを元に戻す

yum history undo コマンドを使用すると、単一のトランザクション内で実行された手順を元に戻すことができます。

  • トランザクションによって新しいパッケージがインストールされた場合、yum history undo は パッケージをアンインストールします。
  • トランザクションによってパッケージがアンインストールされた場合、yum history undo は パッケージを再インストールします。
  • yum history undo コマンドは、古いパッケージがまだ利用可能な場合、更新されたすべてのパッケージを以前のバージョンにダウングレードしようとします。
注記

古いパッケージバージョンが利用できない場合は、yum history undo コマンドを使用したダウングレードは失敗します。

手順

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

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

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

    # yum history undo <transaction_id>
    Copy to Clipboard

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

    # yum history undo 12
    Copy to Clipboard

    最後のトランザクションを元に戻す場合は、次のように入力します。

    # yum history undo last
    Copy to Clipboard

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

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

手順

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

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

    # yum history rollback <transaction_id>
    Copy to Clipboard

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

    # yum history rollback 12
    Copy to Clipboard

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

    # yum history rollback 1
    Copy to Clipboard

第10章 カスタムソフトウェアリポジトリーの管理

リポジトリーは、/etc/yum.conf ファイルまたは /etc/yum.repos.d/ ディレクトリーの .repo ファイルで設定できます。

注記

.repo ファイル拡張子を持つすべてのファイルは YUM によって読み取られるため、/etc/yum.repos.d/ 内の新規または既存の .repo ファイルでリポジトリーを定義することを推奨します。

/etc/yum.conf ファイルには [main] セクションが含まれており、リポジトリー固有のオプションを設定するために使用できる 1 つ以上のリポジトリーセクション ([ <repository_ID> ]) を含めることができます。/etc/yum.conf ファイルの個々のリポジトリーセクションで定義した値は、[main] セクションで設定された値を上書きします。

10.1. YUM リポジトリーオプション

/etc/yum.conf 設定ファイルには、括弧で囲まれたリポジトリー ID ([ <repository_ID> ]) を含むリポジトリーセクションが含まれています。これらのセクションを使用して、個々の YUM リポジトリーを定義できます。

重要

リポジトリー ID は一意である必要があります。

使用可能なリポジトリー ID オプションの完全なリストについては、システムの dnf.conf (5) man ページの [ <repository_ID> ] OPTIONS セクションを参照してください。

10.2. YUM リポジトリーの追加

/etc/yum.repos.d/ ディレクトリーの .repo ファイルで定義することにより、YUM リポジトリーをシステムに追加できます。

手順

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

    # yum-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) 以外の未検証または信頼できないソースから取得してインストールする場合には、セキュリティー上のリスクが伴います。セキュリティー、安定性、互換性、保全性に関する問題につながる恐れがあります。

10.3. YUM リポジトリーの有効化

システムに YUM リポジトリーを追加したら、それを有効にしてインストールと更新を確実に実行できるようにします。

手順

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

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

10.4. YUM リポジトリーの無効化

特定のパッケージのインストールまたは更新を防止するには、これらのパッケージを含む YUM リポジトリーを無効にすることができます。

手順

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

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

第11章 Application Stream コンテンツのバージョン管理

AppStream リポジトリーのコンテンツは、モジュールストリームに対応する複数のバージョンが使用できます。たとえば、システムにすでにインストールされているモジュールの別のバージョンをインストールできます。

11.1. モジュールの依存関係とストリームの変更

これまで、コンテンツを提供するパッケージは他のパッケージに依存し、通常は使用する依存関係バージョンを指定していました。モジュールに含まれるパッケージにもこの仕組みが適用されますが、パッケージとその特定バージョンをモジュールとストリームとしてグループ化したことで、さらに制限されます。また、モジュールストリームは含まれるパッケージや提供するパッケージに制限されずに、その他のモジュールのストリームへの依存関係を宣言できます。

パッケージやモジュールを操作した後は、インストールされているすべてのパッケージの依存関係ツリー全体が、パッケージが宣言しているすべての条件を満たさなければなりません。また、すべてのモジュールストリームの依存関係に適合する必要があります。あるモジュールストリームを無効にすると、他のモジュールストリームも無効にしなければならない場合があります。自動的に削除されるパッケージはありません。

次のアクションにより、後続の自動操作が発生する可能性があることに注意してください。

  • モジュールストリームを有効にすると、別のモジュールストリームが有効になる可能性があります。
  • モジュールストリームプロファイルをインストールしたり、ストリームからパッケージをインストールしたりすると、他のモジュールストリームが有効になり、他のパッケージがインストールされる可能性があります。
  • パッケージを削除すると、別のパッケージも削除される可能性があります。このようなパッケージがモジュールにより提供されている場合は、このモジュールストリームのパッケージがインストールされなくなっても、将来のインストールに備えてモジュールストリームは有効のままになります。これは、未使用の YUM リポジトリーの動作を反映します。
重要

同じモジュールの別のストリームがすでに有効になっている場合、モジュールのストリームを有効にすることはできません。ストリームを切り替えるには、後のストリームに切り替える の手順を完了します。または、モジュールをリセットして から、新しいストリームを有効にします

重要

別のストリームに切り替える前に、ストリームからインストールしたパッケージをすべて削除すると、対応するリポジトリーやストリームがないのにパッケージがインストールされている状態にならないようにします。

11.2. モジュールおよび非モジュールの依存関係のやり取り

モジュールの依存関係 は、通常の RPM の依存関係に追加された層になります。モジュール依存関係の機能は、リポジトリー間で仮想的な依存関係と同様になります。つまり、異なるパッケージをインストールするには、RPM の依存関係と、モジュールの依存関係の両方を解決する必要があります。

変更が明示的に指示される場合を除き、システムは常にモジュールとストリームの選択を保持します。モジュールパッケージは、このパッケージを提供するモジュールの、現在有効なストリームに含まれる更新を受け取りますが、別のストリームに含まれたバージョンへのアップグレードは行いません。

11.3. モジュールストリームのリセット

モジュールをリセットすると、このモジュールが有効でも無効でもない初期状態に戻ります。モジュールに設定したデフォルトストリームがある場合は、モジュールをリセットするとそのストリームがアクティブになります。

モジュールをリセットすると、たとえば、モジュールを有効にしたままにせずに、モジュールから RPM コンテンツのみを抽出したい場合に便利です。モジュールを有効にしてその内容を抽出した後、yum module reset コマンドを使用してこのモジュールを初期状態にリセットできます。

手順

  • モジュールストリームをリセットにします。

    # yum module reset <module_name>
    Copy to Clipboard

    モジュールは初期状態に戻ります。有効なストリームとインストールされたプロファイルに関する情報は消去されますが、インストールされたコンテンツは削除されません。

11.4. モジュールのストリームをすべて無効化

デフォルトストリームを持つモジュールは、常に 1 つのストリームがアクティブになります。モジュールのすべてのモジュールストリームのコンテンツにアクセスできないようにする場合は、モジュール全体を無効にできます。

前提条件

手順

  • モジュールを無効にします。

    # yum module disable <module_name>
    Copy to Clipboard

    module-name は、無効にするモジュールの名前に置き換えます。

    yum コマンドは確認を求め、その後、すべてのストリームとともにモジュールを無効にします。すべてのモジュールが非アクティブになります。インストール済みのコンテンツは削除されません。

11.5. 後続のストリームへの切り替え

後のモジュールストリームに切り替えると、それぞれのパッケージがすべて後のバージョンに置き換えられます。

重要

データをバックアップし、コンポーネントに固有の移行手順に従ってください。

または、現在のストリームからインストールされている モジュールのコンテンツをすべて削除しモジュールをリセットして新しいストリームをインストールすること もできます。

前提条件

  • システムが完全に更新されている。
  • システムにインストールしたパッケージよりも、リポジトリーで利用可能なパッケージの方が新しい。

手順

  1. システムが後のストリームに切り替える準備ができているかどうかを確認します。

    # yum distro-sync
    Copy to Clipboard
    重要

    このコマンドは、何もする事はありません。完了!。代わりに変更を提案し、確認を求められた場合は、この変更を慎重に確認し、続行するかどうかを検討してください。必要に応じて、YUM distro-sync コマンドを繰り返し実行します。または、提案された変更を拒否し、コマンドが返される状態にシステムを手動で変更することもできます。何もする事はありません。完了!

    ストリームを切り替える前に yum distro-sync の 結果を確認することで、この手順の最後のステップとして同じコマンドが必要になるため、ストリームの切り替えとは関係のないシステムへの変更を防ぐことができます。

  2. アクティブなストリームを後続のストリームに変更します。

    # yum module reset <module-name>
    # yum module enable <module-name>:<new-stream>
    Copy to Clipboard
  3. インストール済みパッケージを同期し、ストリーム間の変更を実行します。

    # yum distro-sync
    Copy to Clipboard

    この動作により、ストリーム外のコンテンツへの変更が提案されている場合は、注意して確認してください。

    注記
    • インストールされた特定のパッケージが以前のストリームに依存しており、後のストリームに互換性のあるバージョンがない場合、YUM は 依存関係の競合を報告します。この場合、依存関係が欠落しているために後のストリームと一緒にインストールできないため、--allowerasing オプションを使用してそのようなパッケージを削除します。
    • Perl モジュールを切り替えるときは、基本 RHEL 8 インストール内の特定のパッケージが Perl 5.26 に依存しているため、常に --allowerasing オプションを使用する必要があります。
    • 新しいストリームが有効になった後、通常は C または C++ で記述されるインタープリター言語のバイナリー拡張機能を再インストールする必要があります。たとえば、次のコマンドを使用してインストールされたパッケージが対象となります。

      • ruby モジュールからの gem コマンド。詳細は How to switch Ruby streams in RHEL 8 を参照してください。
      • nodejs モジュールからの npm コマンド
      • perl モジュールの cpan コマンド
      • PHP モジュールの pecl コマンド

11.6. カスタムのデフォルトモジュールストリームとプロファイルの定義

デフォルトでは、YUM ユーティリティーは、モジュールを含むリポジトリーで定義されたデフォルトのモジュールストリームを使用します。/etc/dnf/modules.defaults.d/ ディレクトリーで、デフォルトのストリームとデフォルトのモジュールプロファイルを設定できます。

重要

モジュールストリームの ライフサイクル を常に考慮してください。

前提条件

手順

  1. 利用可能なストリームとそのプロファイルを表示します。

    # yum module list <module_name>
    Copy to Clipboard

    たとえば、postgresql モジュールの利用可能なストリームとそのプロファイルをリスト表示するには、次のように入力します。

    # yum module list postgresql
    (…​)
    Red Hat Enterprise Linux 8 for x86_64 - AppStream (RPMs)
    Name             Stream       Profiles                Summary
    postgresql       9.6          client, server [d]      PostgreSQL server and client module
    postgresql       10 [d]       client, server [d]      PostgreSQL server and client module
    postgresql       12           client, server [d]      PostgreSQL server and client module
    postgresql       13           client, server [d]      PostgreSQL server and client module
    postgresql       15           client, server [d]      PostgreSQL server and client module
    …​
    Hint: [d]efault, [e]nabled, [x]disabled, [i]nstalled
    Copy to Clipboard
  2. /etc/dnf/modules.defaults.d/ ドロップインディレクトリーに YAML 設定ファイルを作成します。

    たとえば、次の内容の /etc/dnf/modules.defaults.d/postgresql.yaml ファイルを作成し、13 をpostgresql モジュールのデフォルトストリームとして定義し、サーバーを デフォルトプロファイルとして定義します。

    ---
    document: modulemd-defaults
    version: 1
    data:
      module: postgresql
      stream: "13"
      profiles:
        13: [server]
    Copy to Clipboard

検証

  • デフォルトのストリームとプロファイルの設定を確認します。

    # yum module list postgresql
    (…​)
    Red Hat Enterprise Linux 8 for x86_64 - AppStream (RPMs)
    Name             Stream       Profiles                Summary
    postgresql       9.6          client, server          PostgreSQL server and client module
    postgresql       10           client, server          PostgreSQL server and client module
    postgresql       12           client, server          PostgreSQL server and client module
    postgresql       13 [d]       client, server [d]      PostgreSQL server and client module
    postgresql       15           client, server          PostgreSQL server and client module
    …​
    Hint: [d]efault, [e]nabled, [x]disabled, [i]nstalled
    Copy to Clipboard

第12章 YUM コマンドリスト

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

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

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

コマンド説明

yum search term

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

yum repoquery package

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

yum リスト

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

yum list --installed

yum repoquery --installed

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

yum リスト --available

yum repoquery

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

yum repolist

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

yum repolist --disabled

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

yum repolist --all

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

yum repoinfo

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

yum info package_name

yum repoquery --info package_name

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

yum repoquery --info --installed package_name

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

yum module list

モジュールとその現在の状態を一覧表示します。

yum モジュール情報 module_name

モジュールの詳細を表示します。

yum モジュールリスト モジュール名

モジュールの現在の状態を表示します。

yum モジュール情報 -- プロファイル モジュール名

選択したモジュールの利用可能なプロファイルに関連付けられたパッケージを表示します。

yum モジュール情報 -- プロファイル モジュール名: ストリーム

指定されたストリームを使用して、モジュールの利用可能なプロファイルに関連付けられたパッケージを表示します。

yum module provides package

パッケージを提供するモジュール、ストリーム、およびプロファイルを特定します。

なお、パッケージがどのモジュールからも利用できない場合は、このコマンドの出力は空になります。

yum group summary

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

yum group list

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

yum グループ情報 グループ名

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

12.2. RHEL 8 でコンテンツをインストールするためのコマンド

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

コマンド説明

yum install package_name

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

モジュールストリームによりパッケージが提供される場合は、必要なモジュールストリームを yum が解決し、このパッケージのインストール時に自動的に有効になります。これは、すべてのパッケージ依存関係で再帰的に行われます。より多くのモジュールストリームがこの要件を満たす必要がある場合は、デフォルトのモジュールストリームが使用されます。

yum install package_name_1 package_name_2

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

yum install package_name.arch

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

yum インストール /usr/sbin/binary_file

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

yum install /path/

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

yum install package_url

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

yum モジュールモジュール 名: ストリーム を有効にする

特定のストリームを使用してモジュールを有効にします。

このコマンドを実行しても RPM パッケージはインストールされないことに注意してください。

yum モジュールインストール モジュール名: ストリーム

yum install @ モジュール名: ストリーム

特定のモジュールストリームからデフォルトのプロファイルをインストールします。

このコマンドを実行すると、指定したストリームも有効になっていることに注意してください。

yum モジュールインストール モジュール名:stream/プロファイル

yum install @ モジュール名:stream/プロファイル

特定のストリームを使用して、選択したプロファイルをインストールします。

yum グループインストール グループ名

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

yum グループインストール グループ ID

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

yum install-n <package_name>

正確な名前を使用してパッケージをインストールします。

yum install-na <package_name>.<architecture>

正確な名前とアーキテクチャーを使用してパッケージをインストールします。

yum install-nevra <package_name>-<epoch>:<version>-<release>.<architecture>

正確な名前、エポック、バージョン、リリース、アーキテクチャーを使用してパッケージをインストールします。

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

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

コマンド説明

yum remove package_name

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

yum remove package_name_1 package_name_2

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

yum グループグループ名を削除します

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

yum グループ グループ ID を削除します

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

yum モジュール削除 --all モジュール名: ストリーム

指定されたストリームからすべてのパッケージを削除します。

このコマンドを実行すると、システムから重要なパッケージが削除される可能性があることに注意してください。

yum モジュール削除 module_name:stream/プロファイル

インストール済みプロファイルからのパッケージを削除します。

yum モジュール削除 モジュール名: ストリーム

指定したストリーム内のすべてのインストール済みプロファイルからのパッケージを削除します。

yum モジュールリセット モジュール名

モジュールを初期状態へのリセット

このコマンドを実行しても、指定したモジュールからパッケージが削除されないことに注意してください。

yum モジュールモジュール を無効にする

モジュールおよびそのストリームの無効化

このコマンドを実行しても、指定したモジュールからパッケージが削除されないことに注意してください。

yum remove-n <package_name>

正確な名前を使用してパッケージを削除します。

yum remove-na <package_name>.<architecture>

正確な名前とアーキテクチャーを使用してパッケージを削除します。

yum remove-nevra <package_name>-<epoch>:<version>-<release>.<architecture>

正確な名前、エポック、バージョン、リリース、アーキテクチャーを使用してパッケージを削除します。

法律上の通知

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