ユーザー空間コンポーネントのインストール、管理、および削除
YUM ソフトウェア管理ツールを使用した BaseOS リポジトリーおよび AppStream リポジトリーでのコンテンツの管理
概要
Red Hat ドキュメントへのフィードバック (英語のみ)
Red Hat ドキュメントに関するご意見やご感想をお寄せください。また、改善点があればお知らせください。
Jira からのフィードバック送信 (アカウントが必要)
- Jira の Web サイトにログインします。
- 上部のナビゲーションバーで Create をクリックします。
- Summary フィールドにわかりやすいタイトルを入力します。
- Description フィールドに、ドキュメントの改善に関するご意見を記入してください。ドキュメントの該当部分へのリンクも追加してください。
- ダイアログの下部にある 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
# 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
この例では、次のプロファイルが利用可能です。
-
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
# yum config-manager --dump
Copy to Clipboard Copied!
3.2. YUM のメインオプションの設定
/etc/yum.conf
設定ファイルには 1 つの [main]
セクションが含まれています。このセクションのキーと値のペアは、YUM の 動作とリポジトリーの処理方法に影響します。
手順
-
/etc/yum.conf
ファイルを編集します。 -
要件に応じて
[main]
セクションを更新します。 - 変更を保存します。
3.3. YUM プラグインの有効化と無効化
YUM ツールでは、プラグインはデフォルトでロードされます。ただし、YUM が ロードするプラグインに影響を与えることはできます。
すべてのプラグインの無効化は、潜在的な問題を診断する場合にのみ行ってください。YUM には、product-id
や subscription-manager
などの特定のプラグインが必要です。これらを無効にすると、Red Hat Enterprise Linux はコンテンツ配信ネットワーク (CDN) からソフトウェアをインストールまたは更新できなくなります。
手順
YUM がプラグインを使用する方法を制御するには、次のいずれかの方法を使用します。
YUM プラグインの読み込みをグローバルに有効または無効にするには、
/etc/dnf/dnf.conf
ファイルの[main]
セクションにplugins
パラメーターを追加します。-
すべての YUM プラグインの読み込みを有効にするには、
plugins=1
(デフォルト) を設定します。 -
すべての YUM プラグインの読み込みを無効にするには、
plugins=0
を設定します。
-
すべての YUM プラグインの読み込みを有効にするには、
-
特定のプラグインを無効にするには、
/etc/dnf/plugins/<plug-in_name>.conf
ファイルの[main]
セクションにenabled=False
を追加します。 特定のコマンドのすべての YUM プラグインを無効にするには、コマンドに
--noplugins
オプションを追加します。たとえば、単一の更新コマンドに対して YUM プラグインを無効にするには、次のように入力します。yum --noplugins update
# yum --noplugins update
Copy to Clipboard Copied! 特定の YUM プラグインを単一のコマンドで無効にするには、コマンドに
--disableplugin= plugin-name
オプションを追加します。たとえば、特定の YUM プラグインを単一の更新コマンドで無効にするには、次のように入力します。yum update --disableplugin=<plugin_name>
# yum update --disableplugin=<plugin_name>
Copy to Clipboard Copied! 特定の YUM プラグインを単一のコマンドで有効にするには、コマンドに
--enableplugin= plugin-name
オプションを追加します。たとえば、特定の YUM プラグインを単一の更新コマンドで有効にするには、次のように入力します。yum update --enableplugin=<plugin_name>
# yum update --enableplugin=<plugin_name>
Copy to Clipboard Copied!
3.4. YUM 操作からパッケージを除外する
excludepkgs
オプションを使用して、YUM 操作からパッケージを除外するように YUM を設定できます。/etc/yum.conf
ファイルの [main]
またはリポジトリーセクションで excludepkgs を
定義できます。
--disableexcludes
オプションを使用すると、設定済みパッケージを操作から除外することを一時的に無効にできます。
手順
/etc/yum.conf
ファイルに次の行を追加して、YUM 操作からパッケージを除外します。excludepkgs=<package_name_1>,<package_name_2> ...
excludepkgs=<package_name_1>,<package_name_2> ...
Copy to Clipboard Copied! または、パッケージ名の代わりに glob 表現を使用して、除外するパッケージを定義します。詳細は、yum 入力で glob 表現を指定するを 参照してください。
第4章 RHEL 8 コンテンツの検索
次のセクションでは、YUM を 使用して Red Hat Enterprise Linux 8 の AppStream および BaseOS リポジトリー内のコンテンツを検索して調べる方法について説明します。
4.1. ソフトウェアパッケージの検索
必要なソフトウェアを提供するパッケージを特定するには、YUM を 使用してリポジトリーを検索します。
手順
シナリオに応じて、次のいずれかのオプションを使用してリポジトリーを検索します。
パッケージの名前または概要内の用語を検索するには、次のように入力します。
yum search <term>
$ yum search <term>
Copy to Clipboard Copied! パッケージの名前、概要、または説明内の用語を検索するには、次のように入力します。
yum search --all <term>
$ yum search --all <term>
Copy to Clipboard Copied! --all
オプションを使用して説明内で追加の検索を行うと、通常の検索操作よりも時間がかかることに注意してください。
4.2. ソフトウェアパッケージのリスト表示
YUM を 使用すると、リポジトリーで使用可能なパッケージとそのバージョンのリストを表示できます。
手順
利用可能なすべてのパッケージの最新バージョンを、アーキテクチャー、バージョン番号、インストール元のリポジトリーを含めてリスト表示します。
yum list --all
$ 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 Copied! リポジトリーの前の
@
記号は、この行のパッケージが現在インストールされていることを示します。または、使用可能なすべてのパッケージを、バージョン番号とアーキテクチャーを含めて表示するには、次のように入力します。
yum list --all
$ 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 Copied! 必要に応じて、
--all
の代わりに他のオプションを使用して出力をフィルタリングできます。次に例を示します。-
インストールされているパッケージのみをリスト表示するには、
--installed
を使用します。 -
利用可能なすべてのパッケージをリスト表示するには、
--available
を使用します。 -
新しいバージョンを利用できるパッケージをリスト表示するには、
--upgrades
を使用します。
-
インストールされているパッケージのみをリスト表示するには、
glob 表現を引数として追加することで、結果をフィルタリングできます。詳細は、yum 入力で glob 表現を指定するを 参照してください。
4.3. リポジトリーのリスト表示
システムで有効または無効になっているリポジトリーの概要を取得するには、リポジトリーをリスト表示します。
手順
システム上で有効になっているすべてのリポジトリーをリスト表示します。
yum repolist
# yum repolist
Copy to Clipboard Copied! 特定のリポジトリーのみを表示するには、次のいずれかのオプションをコマンドに追加します。
-
--disabled
を追加すると、無効なリポジトリーのみがリストされます。 -
--all
を追加すると、有効なリポジトリーと無効なリポジトリーの両方がリストされます。
-
オプション: リポジトリーに関する追加情報をリスト表示します。
yum repoinfo <repository_name>
# yum repoinfo <repository_name>
Copy to Clipboard Copied! 注記glob 表現を引数として追加することで、結果をフィルタリングできます。詳細は、yum 入力で glob 表現を指定するを 参照してください。
4.4. パッケージ情報の表示
YUM リポジトリーをクエリーして、次のようなパッケージの詳細を表示できます。
- バージョン
- Release
- アーキテクチャー
- パッケージサイズ
- 説明
手順
1 つ以上の利用可能なパッケージに関する情報を表示します。
yum info <package_name>
# yum info <package_name>
Copy to Clipboard Copied! このコマンドは、現在インストールされているパッケージの情報と、リポジトリー内にあるその新しいバージョン (利用可能な場合) の情報を表示します。
glob 表現を引数として追加することで、結果をフィルタリングできます。詳細は、yum 入力で glob 表現を指定するを 参照してください。
4.5. パッケージグループとグループが提供するパッケージのリスト表示
パッケージグループには複数のパッケージをバンドルされています。パッケージグループを使用すると、グループに割り当てられたすべてのパッケージを 1 回の手順でインストールできます。ただし、インストールする前に、必要なパッケージグループの名前を特定する必要があります。
手順
インストールされているグループと使用可能なグループの両方をリストします。
yum group list
# yum group list
Copy to Clipboard Copied! yum group list
コマンドに--installed
および--available
オプションを追加することで、結果をフィルタリングできることに注意してください。--hidden オプションを使用すると、出力に隠しグループを表示できます。特定のグループに含まれる必須、オプション、およびデフォルトのパッケージをリストします。
yum group info <group_name>
# yum group info <group_name>
Copy to Clipboard Copied! 注記glob 表現を引数として追加することで、結果をフィルタリングできます。詳細は、yum 入力で glob 表現を指定するを 参照してください。
オプション: インストール済みおよび利用可能なグループの数を表示します。
yum group summary
# yum group summary
Copy to Clipboard Copied!
4.6. 利用可能なモジュールとその内容の一覧表示
YUM を使用してモジュールを検索し、その情報を表示することで、リポジトリーで使用可能なモジュールを識別し、モジュールをインストールする前に適切なストリームを選択できます。
手順
次のいずれかの方法でモジュール情報をリスト表示します。
利用可能なすべてのモジュールをリストします。
yum module list
$ 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 Copied! 特定のモジュールについてのみ同じ情報をリスト表示するには
、yum module list <module_name>
コマンドを使用します。どのモジュールが特定のパッケージを提供しているかを検索します。
yum module provides <package_name>
$ yum module provides <package_name>
Copy to Clipboard Copied! たとえば、
npm
パッケージを提供するモジュールとプロファイルを表示するには、次のように入力します。yum module provides 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 Copied!
モジュールの詳細をリスト表示するには、次のいずれかの方法を使用します。
説明、すべてのプロファイルのリスト、モジュールが提供するすべてのパッケージのリストなど、モジュールに関するすべての詳細をリストします。
yum module info <module_name>
$ yum module info <module_name>
Copy to Clipboard Copied! たとえば、
nodejs
モジュールの詳細を表示するには、次のように入力します。yum module info 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 Copied! 各モジュールプロファイルがインストールするパッケージをリストします。
yum module info --profile <module_name>
$ yum module info --profile <module_name>
Copy to Clipboard Copied! 注記各プロファイルは、依存関係を含む複数のパッケージセットをインストールします。
たとえば、
nodejs
モジュールのこの情報を表示するには、次のように入力します。yum module info --profile 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 Copied!
4.7. YUM 入力でのグローバル表現の指定
1 つ以上の glob 表現を引数として追加することで、yum
コマンドの結果をフィルタリングできます。
手順
yum コマンドで glob 表現を使用する場合は、次のいずれかの方法を使用します。
glob 表現全体を一重引用符または二重引用符で囲みます。
yum provides "*/<file_name>"
# yum provides "*/<file_name>"
Copy to Clipboard Copied! 絶対パスの場合は
<file_name>
の前にバックスラッシュ (/
) 文字を付けるか、完全なパスが不明な場合はワイルドカードを使用するために*/を
付ける必要があります。ワイルドカード文字の前にはバックスラッシュ (
\
) を追加して、ワイルドカード文字をエスケープします。yum provides \*/<file-name>
# yum provides \*/<file-name>
Copy to Clipboard Copied!
第5章 RHEL 8 コンテンツのインストール
次のセクションでは、YUM を 使用して Red Hat Enterprise Linux 8 にコンテンツをインストールする方法について説明します。
5.1. パッケージのインストール
ソフトウェアがデフォルトのインストールに含まれていない場合は、手動でインストールできます。YUM は 依存関係を自動的に解決してインストールします。
前提条件
- オプション: インストールするパッケージの名前がわかっています。
インストールするパッケージがモジュールストリームによって提供されている場合、それぞれのモジュールストリームが有効になっている。詳細は、モジュールストリームの有効化 を参照してください。
注記パッケージがデフォルトとしてマークされたモジュールストリームによって提供される場合、
yum は
このパッケージをインストールする前にそのモジュールストリームを自動的に有効にします。
手順
次のいずれかの方法を使用してパッケージをインストールします。
リポジトリーからパッケージをインストールするには、次のように入力します。
yum install <package_name_1> <package_name_2> ...
# yum install <package_name_1> <package_name_2> ...
Copy to Clipboard Copied! AMD64 や Intel 64 など、複数のアーキテクチャーをサポートするシステムにパッケージをインストールする場合は、パッケージ名にアーキテクチャーを追加してパッケージのアーキテクチャーを指定できます。
yum install <package_name>.<architecture>
# yum install <package_name>.<architecture>
Copy to Clipboard Copied! パッケージが提供するファイルへのパスだけがわかっていて、パッケージ名がわからない場合にパッケージをインストールするには、次のパスを使用して対応するパッケージをインストールできます。
yum install <path_to_file>
# yum install <path_to_file>
Copy to Clipboard Copied! ローカル RPM ファイルをインストールするには、次のように入力します。
yum install <path_to_RPM_file>
# yum install <path_to_RPM_file>
Copy to Clipboard Copied! パッケージに依存関係がある場合は、これらの RPM ファイルへのパスも指定します。それ以外の場合、YUM は リポジトリーから依存関係をダウンロードするか、リポジトリーに依存関係がない場合には失敗します。
5.2. パッケージグループのインストール
パッケージグループには複数のパッケージをバンドルされています。パッケージグループを使用すると、グループに割り当てられたすべてのパッケージを 1 回の手順でインストールできます。
手順
パッケージグループをインストールするには、次のいずれかの方法を使用します。
グループ名でパッケージグループをインストールするには、次のいずれかのコマンドを入力します。
yum group install <group_name> yum install @<group_name>
# yum group install <group_name> # yum install @<group_name>
Copy to Clipboard Copied! グループ ID でパッケージグループをインストールするには、次のように入力します。
yum group install <group_ID>
# yum group install <group_ID>
Copy to Clipboard Copied!
5.3. モジュールストリームを有効にする
インストールするパッケージがモジュールストリームによって提供される場合は、それぞれのモジュールストリームを有効にする必要があります。
パッケージがデフォルトとしてマークされたモジュールストリームによって提供される場合、yum は
このパッケージをインストールする前にそのモジュールストリームを自動的に有効にします。
インストールには常に特定のモジュールストリームを選択することを推奨します。各ストリームの ライフサイクル を常に考慮してください。
特定のデフォルトモジュールストリームは、RHEL メジャーリリースの終了前にライフサイクル終了ステータスに達することに注意してください。
手順
モジュールストリームを有効にします。
yum module enable <module_name>:<stream>
# yum module enable <module_name>:<stream>
Copy to Clipboard Copied! 注記モジュールの別のストリームがデフォルトであったために以前はアクティブであった場合、そのストリームは非アクティブになります。
5.4. モジュールコンテンツのインストール
特定のソフトウェアについては、Red Hat がモジュールを提供します。モジュールを使用して、特定のバージョン (ストリーム) とパッケージのセット (プロファイル) をインストールできます。
モジュールストリームの ライフサイクル を常に考慮してください。
前提条件
- 同じモジュールの別のストリームからパッケージをインストールしていない。
手順
インストールするパッケージを提供するモジュールをリスト表示します。
yum module list <module_name>
# yum module list <module_name>
Copy to Clipboard Copied! たとえば、
postgresql-server
パッケージを提供するモジュールをリスト表示するには、次のように入力します。yum module list postgresql
$ 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 Copied! 出力は、
postgresql
モジュールがストリーム9.6
、10
、12
、および13
で使用できることを示しています。デフォルトのストリームは10
([d]
) です。選択したモジュールストリームをインストールします。
yum module install <module-name>:<stream>/<profile>
# yum module install <module-name>:<stream>/<profile>
Copy to Clipboard Copied! ストリームのデフォルトプロファイルが定義されている場合は、コマンドで
/<profile>
を省略して、ストリームのこのデフォルトプロファイルをインストールできます。たとえば、
postgresql
モジュールのストリーム13
のデフォルトプロファイル (server
) をインストールするには、次のように入力します。yum module install postgresql:13
# 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 Copied!
検証
正しいモジュールストリームが有効になっており (
[e]
)、必要なプロファイルがインストールされている ([i]
) ことを確認します。yum module list postgresql
# 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 Copied!
5.5. インストール用のパッケージの詳細を指定する
正確なパッケージインストールプロセスのためにパッケージの詳細を指定できます。これを行うには、yum install
コマンドに次の接尾辞を追加して、引数を解析する方法を明示的に定義します。
-
パッケージの正確な名前を指定するには
-n
を使用します。 -
正確なパッケージ名とアーキテクチャーを指定するには、
-na を
使用します。 -
-nevra を
使用して、正確なパッケージ名、エポック、バージョン、リリース、およびアーキテクチャーを指定します。
手順
シナリオに応じて、次のいずれかのオプションを使用してパッケージのインストールプロセスを最適化します。
正確な名前を使用してパッケージをインストールするには、次のように入力します。
yum install-n <package_name>
# yum install-n <package_name>
Copy to Clipboard Copied! 正確な名前とアーキテクチャーを使用してパッケージをインストールするには、次のように入力します。
yum install-na <package_name>.<architecture>
# yum install-na <package_name>.<architecture>
Copy to Clipboard Copied! 正確な名前、エポック、バージョン、リリース、アーキテクチャーを使用してパッケージをインストールするには、次のように入力します。
yum install-nevra <package_name>-<epoch>:<version>-<release>.<architecture>
# yum install-nevra <package_name>-<epoch>:<version>-<release>.<architecture>
Copy to Clipboard Copied!
第6章 RHEL 8 コンテンツの更新
YUM を 使用すると、システムに保留中の更新があるかどうかを確認できます。更新が必要なパッケージをリスト表示して、1 つのパッケージ、複数のパッケージ、またはすべてのパッケージを一度に更新できます。更新を選択したパッケージに依存関係がある場合は、これらの依存関係も更新されます。
6.1. 更新の確認
システムにインストールされているパッケージに利用可能な更新があるかどうかを識別するには、それらをリスト表示します。
手順
インストールされたパッケージの利用可能な更新を確認します。
yum check-update
# yum check-update
Copy to Clipboard Copied! このコマンドは、更新が利用可能なパッケージおよびその依存関係のリストを表示します。
6.2. パッケージの更新
YUM を 使用すると、単一のパッケージ、またはすべてのパッケージとその依存関係を一度に更新できます。
カーネルに更新を適用する場合、yum update コマンド
または yum install
コマンドのどちらを使用しているかに関係なく、YUM は 常に新しいカーネルをインストールします。これは、installonlypkgs
YUM 設定オプションを使用して識別されたパッケージにのみ適用されることに注意してください。このようなパッケージには、たとえば、kernel
、kernel-core
、および kernel-modules
パッケージが含まれます。
シナリオに応じて、次のいずれかのオプションを使用して更新を適用します。
すべてのパッケージとその依存関係を更新するには、次のコマンドを実行します。
yum update
# yum update
Copy to Clipboard Copied! 単一のパッケージを更新するには、次のように入力します。
yum update <package_name>
# yum update <package_name>
Copy to Clipboard Copied!
BIOS または IBM Power システムで GRUB ブートローダーパッケージをアップグレードした場合は、GRUB を再インストールします。GRUB の再インストール を参照してください。
6.3. パッケージグループの更新
パッケージグループは複数のパッケージをバンドルしており、パッケージグループを使用すると、グループに割り当てられているすべてのパッケージを 1 つの手順で更新できます。
手順
特定のパッケージグループからパッケージを更新します。
yum group update <group_name>
# yum group update <group_name>
Copy to Clipboard Copied!
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
# yum install dnf-automatic
Copy to Clipboard Copied!
検証
dnf-automatic
パッケージが存在することを確認して、インストールが正常に完了したことを確認します。rpm -qi dnf-automatic
# rpm -qi dnf-automatic
Copy to Clipboard Copied!
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>
# 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 <timer_name>
# systemctl status <timer_name>
Copy to Clipboard Copied! オプション: システム上の各タイマーが最後に実行された時刻を確認します。
systemctl list-timers --all
# systemctl list-timers --all
Copy to Clipboard Copied!
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 設定を上書きしますか? |
---|---|---|
| キャッシュにパッケージをダウンロードし、更新を利用できるようにします。
このタイマーユニットでは更新パッケージはインストールされません。インストールを実行するには、 | はい |
| 更新したパッケージをダウンロードしてインストールします。 | はい |
| リポジトリーデータのみをダウンロードして、リポジトリーキャッシュを最新の状態に維持し、利用可能な更新について通知します。 このタイマーユニットでは、更新されたパッケージはダウンロードまたはインストールされません。 | はい |
|
更新をダウンロードして適用する際のこのタイマーの動作は、 このタイマーはパッケージをダウンロードしますが、インストールはしません。 | いいえ |
第8章 RHEL 8 コンテンツの削除
次のセクションでは、YUM を 使用して Red Hat Enterprise Linux 8 のコンテンツを削除する方法について説明します。
8.1. インストール済みパッケージの削除
YUM を 使用すると、システムにインストールされている単一のパッケージまたは複数のパッケージを削除できます。削除を選択したパッケージに未使用の依存関係がある場合、YUM は これらの依存関係もアンインストールします。
手順
特定のパッケージを削除します。
yum remove <package_name_1> <package_name_2> ...
# yum remove <package_name_1> <package_name_2> ...
Copy to Clipboard Copied!
8.2. パッケージグループの削除
パッケージグループは複数のパッケージをバンドルします。パッケージグループを使用すると、グループに割り当てられているすべてのパッケージを 1 つの手順で削除できます。
手順
パッケージグループをインストールするには、次のいずれかの方法を使用します。
グループ名でパッケージグループを削除するには、次のいずれかのコマンドを入力します。
yum group remove <group_name> yum remove @<group_name>
# yum group remove <group_name> # yum remove @<group_name>
Copy to Clipboard Copied! グループ ID によってパッケージグループを削除するには、次のように入力します。
yum group remove <group_ID>
# yum group remove <group_ID>
Copy to Clipboard Copied!
8.3. インストールしたモジュラーコンテンツの削除
インストールされたモジュールコンテンツを削除する場合、選択したプロファイル または ストリーム全体 からパッケージを削除できます。
YUM は、 プロファイルまたはストリームでインストールされたパッケージに対応する名前を持つすべてのパッケージを、依存パッケージも含めて削除しようとします。(特にシステムでカスタムリポジトリーを有効にしている場合は) 続行する前に、削除するパッケージのリストを常に確認してください。
8.3.1. インストール済みプロファイルからのパッケージの削除
プロファイルとともにインストールしたパッケージを削除すると、そのプロファイルによりインストールされたパッケージに対応する名前を持つパッケージがすべて削除されます。これには、依存関係も含まれます。ただし、別のプロファイルで必要とされるパッケージは除外されます。
選択したストリームからすべてのパッケージを削除するには、モジュールストリームからすべてのパッケージを削除する の手順を完了します。
前提条件
-
選択したプロファイルは
、yum module install module_name : stream/プロファイル
コマンドを使用してインストールされるか、yum install module_name : stream
コマンドを使用してデフォルトプロファイルとしてインストールされます。
手順
選択したプロファイルに属するパッケージをアンインストールします。
yum module remove <module_name>:<stream>/<profile>
# yum module remove <module_name>:<stream>/<profile>
Copy to Clipboard Copied! たとえば、
php:7.3
モジュールストリームのdevel
プロファイルからパッケージを削除するには、次のように入力します。yum module remove 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 Copied! 警告削除トランザクションに進む前に、
Removing:
およびRemoving unused dependencies:
にあるパッケージのリストを確認してください。このトランザクションにより、要求されたパッケージ、未使用の依存関係、および依存パッケージが削除され、システム障害が発生する可能性があります。または、ストリームにインストールされているすべてのプロファイルからパッケージをアンインストールします。
yum module remove <module_name>:<stream>
# yum module remove <module_name>:<stream>
Copy to Clipboard Copied! 注記この操作は、プロファイルに属さないパッケージをストリームから削除しません。
検証
正しいプロファイルが削除されたことを確認します。
yum module info php
$ 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 Copied! 現在、
devel
以外のすべてのプロファイルがインストールされています ([i]
)。
8.3.2. モジュールストリームから全パッケージを削除
モジュールストリームでインストールしたパッケージを削除すると、そのストリームによりインストールされたパッケージに対応する名前を持つパッケージがすべて削除されます。これには、その依存関係も含まれます。ただし、その他のモジュールで必要なパッケージは除外されます。
選択したプロファイルからパッケージのみを削除するには、インストールされたプロファイルからパッケージを削除する の手順を完了します。
前提条件
- モジュールストリームが有効になっており、ストリームからの少なくともいくつかのパッケージがインストールされています。
手順
選択したストリームからパッケージをすべて削除します。
yum module remove --all <module_name>:<stream>
# yum module remove --all <module_name>:<stream>
Copy to Clipboard Copied! たとえば、
php:7.3
モジュールストリームからすべてのパッケージを削除するには、次のように入力します。yum module remove --all 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 Copied! 警告削除トランザクションに進む前に、
Removing:
およびRemoving unused dependencies:
にあるパッケージのリストを確認してください。このトランザクションにより、要求されたパッケージ、未使用の依存関係、および依存パッケージが削除され、システム障害が発生する可能性があります。オプション: 次のいずれかのコマンドを入力して、ストリームをリセットまたは無効にします。
yum module reset <module_name> yum module disable <module_name>
# yum module reset <module_name> # yum module disable <module_name>
Copy to Clipboard Copied!
検証
選択したモジュールストリームからすべてのパッケージが削除されたことを確認します。
yum module info php
$ 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 Copied! PHP
モジュールの7.3
ストリームは現在有効になっています ([e]
) が、このストリームのパッケージはインストールされていません ([i]
)。
8.4. 削除するパッケージの詳細を指定する
正確なパッケージ削除プロセスのためにパッケージの詳細を指定できます。これを行うには、yum remove
コマンドに次の接尾辞を追加して、引数を解析する方法を明示的に定義します。
-
パッケージの正確な名前を指定するには
-n
を使用します。 -
正確なパッケージ名とアーキテクチャーを指定するには、
-na を
使用します。 -
-nevra を
使用して、正確なパッケージ名、エポック、バージョン、リリース、およびアーキテクチャーを指定します。
手順
シナリオに応じて、次のいずれかのオプションを使用してパッケージ削除プロセスを最適化します。
正確な名前を使用してパッケージを削除するには、次のように入力します。
yum remove-n <package_name>
# yum remove-n <package_name>
Copy to Clipboard Copied! 正確な名前とアーキテクチャーを使用してパッケージを削除するには、次のように入力します。
yum remove-na <package_name>.<architecture>
# yum remove-na <package_name>.<architecture>
Copy to Clipboard Copied! 正確な名前、エポック、バージョン、リリース、アーキテクチャーを使用してパッケージを削除するには、次のように入力します。
yum remove-nevra <package_name>-<epoch>:<version>-<release>.<architecture>
# yum remove-nevra <package_name>-<epoch>:<version>-<release>.<architecture>
Copy to Clipboard Copied!
第9章 パッケージ管理履歴の処理
yum history
コマンドを使用すると、次の情報を確認できます。
- YUM トランザクションのタイムライン。
- トランザクションの発生日時
- トランザクションの影響を受けたパッケージの数
- トランザクションの成功または中止の有無
- トランザクション間で RPM データベースが変更された場合
yum history
コマンドを使用してトランザクションを元に戻すこともできます。
9.1. トランザクションのリスト表示
YUM を 使用して次のタスクを実行できます。
- 最新のトランザクションをリスト表示します。
- 選択したパッケージの最新の操作をリスト表示します。
- 特定のトランザクションの詳細を表示します。
手順
シナリオに応じて、次のいずれかのオプションを使用してトランザクション情報を表示します。
最新の YUM トランザクションのリストを表示するには、次のように入力します。
yum history
# yum history
Copy to Clipboard Copied! 出力には、以下の情報が含まれます。
-
Action(s)
列には、トランザクション中に実行されたアクションのタイプが表示されます (例: インストール (I
)、アップグレード (U
)、削除 (E
) など)。 Altered
列には、トランザクション中に実行されたアクションの数が表示されます。アクションの数の後に、トランザクションの結果を指定することもできます。アクション
列と変更
列の値の詳細は、システムのyum (8)
man ページを参照してください。
-
選択したパッケージの最新操作のリストを表示するには、以下を実行します。
yum history list <package_name>
# yum history list <package_name>
Copy to Clipboard Copied! 特定のトランザクションの詳細を表示するには、以下のコマンドを実行します。
yum history info <transaction_id>
# yum history info <transaction_id>
Copy to Clipboard Copied!
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 システムパッケージを古いバージョンにダウングレードすることはサポートされていません。これは特に、selinux
、selinux-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
コマンドを使用したダウングレードは失敗します。
手順
元に戻すトランザクションの ID を特定します。
yum history
# 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 Copied! オプション: 詳細を表示して、これが元に戻すトランザクションであることを確認します。
yum history info <transaction_id>
# yum history info <transaction_id>
Copy to Clipboard Copied! トランザクションを元に戻します。
yum history undo <transaction_id>
# yum history undo <transaction_id>
Copy to Clipboard Copied! たとえば、以前にインストールした
unzip
パッケージをアンインストールする場合は、次のように入力します。yum history undo 12
# yum history undo 12
Copy to Clipboard Copied! 最後のトランザクションを元に戻す場合は、次のように入力します。
yum history undo last
# yum history undo last
Copy to Clipboard Copied!
9.2.2. 複数の YUM トランザクションを元に戻す
yum history rollback
コマンドを使用すると、指定したトランザクションと最後のトランザクションの間で実行されたすべての YUM トランザクションを元に戻すことができます。トランザクション ID で指定されたトランザクションは変更されないことに注意してください。
手順
元に戻したい状態のトランザクション ID を特定します。
yum history
# 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 Copied! 指定したトランザクションを元に戻す。
yum history rollback <transaction_id>
# yum history rollback <transaction_id>
Copy to Clipboard Copied! たとえば、
wget
およびunzip
パッケージがインストールされる前の状態に戻すには、次のように入力します。yum history rollback 12
# yum history rollback 12
Copy to Clipboard Copied! または、トランザクション履歴のすべてのトランザクションを元に戻すには、トランザクション ID 1 を使用します。
yum history rollback 1
# yum history rollback 1
Copy to Clipboard Copied!
第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 リポジトリーをシステムに追加できます。
手順
システムにリポジトリーを追加します。
yum-config-manager --add-repo <repository_URL>
# yum-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) 以外の未検証または信頼できないソースから取得してインストールする場合には、セキュリティー上のリスクが伴います。セキュリティー、安定性、互換性、保全性に関する問題につながる恐れがあります。
10.3. YUM リポジトリーの有効化
システムに YUM リポジトリーを追加したら、それを有効にしてインストールと更新を確実に実行できるようにします。
手順
リポジトリーを有効にします。
yum-config-manager --enable <repository_id>
# yum-config-manager --enable <repository_id>
Copy to Clipboard Copied!
10.4. YUM リポジトリーの無効化
特定のパッケージのインストールまたは更新を防止するには、これらのパッケージを含む YUM リポジトリーを無効にすることができます。
手順
リポジトリーを無効にします。
yum-config-manager --disable <repository_id>
# yum-config-manager --disable <repository_id>
Copy to Clipboard Copied!
第11章 Application Stream コンテンツのバージョン管理
AppStream リポジトリーのコンテンツは、モジュールストリームに対応する複数のバージョンが使用できます。たとえば、システムにすでにインストールされているモジュールの別のバージョンをインストールできます。
11.1. モジュールの依存関係とストリームの変更
これまで、コンテンツを提供するパッケージは他のパッケージに依存し、通常は使用する依存関係バージョンを指定していました。モジュールに含まれるパッケージにもこの仕組みが適用されますが、パッケージとその特定バージョンをモジュールとストリームとしてグループ化したことで、さらに制限されます。また、モジュールストリームは含まれるパッケージや提供するパッケージに制限されずに、その他のモジュールのストリームへの依存関係を宣言できます。
パッケージやモジュールを操作した後は、インストールされているすべてのパッケージの依存関係ツリー全体が、パッケージが宣言しているすべての条件を満たさなければなりません。また、すべてのモジュールストリームの依存関係に適合する必要があります。あるモジュールストリームを無効にすると、他のモジュールストリームも無効にしなければならない場合があります。自動的に削除されるパッケージはありません。
次のアクションにより、後続の自動操作が発生する可能性があることに注意してください。
- モジュールストリームを有効にすると、別のモジュールストリームが有効になる可能性があります。
- モジュールストリームプロファイルをインストールしたり、ストリームからパッケージをインストールしたりすると、他のモジュールストリームが有効になり、他のパッケージがインストールされる可能性があります。
- パッケージを削除すると、別のパッケージも削除される可能性があります。このようなパッケージがモジュールにより提供されている場合は、このモジュールストリームのパッケージがインストールされなくなっても、将来のインストールに備えてモジュールストリームは有効のままになります。これは、未使用の YUM リポジトリーの動作を反映します。
同じモジュールの別のストリームがすでに有効になっている場合、モジュールのストリームを有効にすることはできません。ストリームを切り替えるには、後のストリームに切り替える の手順を完了します。または、モジュールをリセットして から、新しいストリームを有効にします。
別のストリームに切り替える前に、ストリームからインストールしたパッケージをすべて削除すると、対応するリポジトリーやストリームがないのにパッケージがインストールされている状態にならないようにします。
11.2. モジュールおよび非モジュールの依存関係のやり取り
モジュールの依存関係 は、通常の RPM の依存関係に追加された層になります。モジュール依存関係の機能は、リポジトリー間で仮想的な依存関係と同様になります。つまり、異なるパッケージをインストールするには、RPM の依存関係と、モジュールの依存関係の両方を解決する必要があります。
変更が明示的に指示される場合を除き、システムは常にモジュールとストリームの選択を保持します。モジュールパッケージは、このパッケージを提供するモジュールの、現在有効なストリームに含まれる更新を受け取りますが、別のストリームに含まれたバージョンへのアップグレードは行いません。
11.3. モジュールストリームのリセット
モジュールをリセットすると、このモジュールが有効でも無効でもない初期状態に戻ります。モジュールに設定したデフォルトストリームがある場合は、モジュールをリセットするとそのストリームがアクティブになります。
モジュールをリセットすると、たとえば、モジュールを有効にしたままにせずに、モジュールから RPM コンテンツのみを抽出したい場合に便利です。モジュールを有効にしてその内容を抽出した後、yum module reset
コマンドを使用してこのモジュールを初期状態にリセットできます。
手順
モジュールストリームをリセットにします。
yum module reset <module_name>
# yum module reset <module_name>
Copy to Clipboard Copied! モジュールは初期状態に戻ります。有効なストリームとインストールされたプロファイルに関する情報は消去されますが、インストールされたコンテンツは削除されません。
11.4. モジュールのストリームをすべて無効化
デフォルトストリームを持つモジュールは、常に 1 つのストリームがアクティブになります。モジュールのすべてのモジュールストリームのコンテンツにアクセスできないようにする場合は、モジュール全体を無効にできます。
前提条件
- アクティブモジュールストリーム の概念 を理解している。
手順
モジュールを無効にします。
yum module disable <module_name>
# yum module disable <module_name>
Copy to Clipboard Copied! module-name は、無効にするモジュールの名前に置き換えます。
yum
コマンドは確認を求め、その後、すべてのストリームとともにモジュールを無効にします。すべてのモジュールが非アクティブになります。インストール済みのコンテンツは削除されません。
11.5. 後続のストリームへの切り替え
後のモジュールストリームに切り替えると、それぞれのパッケージがすべて後のバージョンに置き換えられます。
データをバックアップし、コンポーネントに固有の移行手順に従ってください。
または、現在のストリームからインストールされている モジュールのコンテンツをすべて削除し、モジュールをリセットして、新しいストリームをインストールすること もできます。
前提条件
- システムが完全に更新されている。
- システムにインストールしたパッケージよりも、リポジトリーで利用可能なパッケージの方が新しい。
手順
システムが後のストリームに切り替える準備ができているかどうかを確認します。
yum distro-sync
# yum distro-sync
Copy to Clipboard Copied! 重要このコマンドは、
何もする事はありません。完了!
。代わりに変更を提案し、確認を求められた場合は、この変更を慎重に確認し、続行するかどうかを検討してください。必要に応じて、YUM distro-sync
コマンドを繰り返し実行します。または、提案された変更を拒否し、コマンドが返される状態にシステムを手動で変更することもできます。何もする事はありません。完了!
。ストリームを切り替える前に
yum distro-sync の
結果を確認することで、この手順の最後のステップとして同じコマンドが必要になるため、ストリームの切り替えとは関係のないシステムへの変更を防ぐことができます。アクティブなストリームを後続のストリームに変更します。
yum module reset <module-name> yum module enable <module-name>:<new-stream>
# yum module reset <module-name> # yum module enable <module-name>:<new-stream>
Copy to Clipboard Copied! インストール済みパッケージを同期し、ストリーム間の変更を実行します。
yum distro-sync
# yum distro-sync
Copy to Clipboard Copied! この動作により、ストリーム外のコンテンツへの変更が提案されている場合は、注意して確認してください。
注記-
インストールされた特定のパッケージが以前のストリームに依存しており、後のストリームに互換性のあるバージョンがない場合、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
コマンド
-
-
インストールされた特定のパッケージが以前のストリームに依存しており、後のストリームに互換性のあるバージョンがない場合、YUM は 依存関係の競合を報告します。この場合、依存関係が欠落しているために後のストリームと一緒にインストールできないため、
11.6. カスタムのデフォルトモジュールストリームとプロファイルの定義
デフォルトでは、YUM ユーティリティーは、モジュールを含むリポジトリーで定義されたデフォルトのモジュールストリームを使用します。/etc/dnf/modules.defaults.d/
ディレクトリーで、デフォルトのストリームとデフォルトのモジュールプロファイルを設定できます。
モジュールストリームの ライフサイクル を常に考慮してください。
前提条件
- アクティブモジュールストリーム の概念 を理解している。
手順
利用可能なストリームとそのプロファイルを表示します。
yum module list <module_name>
# yum module list <module_name>
Copy to Clipboard Copied! たとえば、
postgresql
モジュールの利用可能なストリームとそのプロファイルをリスト表示するには、次のように入力します。yum module list 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 Copied! /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]
--- document: modulemd-defaults version: 1 data: module: postgresql stream: "13" profiles: 13: [server]
Copy to Clipboard Copied!
検証
デフォルトのストリームとプロファイルの設定を確認します。
yum module list postgresql
# 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 Copied!
第12章 YUM コマンドリスト
次のセクションでは、Red Hat Enterprise Linux 8 でコンテンツをリスト表示、インストール、削除するための YUM コマンドについて説明します。
12.1. RHEL 8 でコンテンツをリスト表示するコマンド
以下は、Red Hat Enterprise Linux 8 でコンテンツとその詳細を見つけるためによく使用される YUM コマンドです。
コマンド | 説明 |
---|---|
| パッケージに関連する用語を使用してパッケージを検索します。 |
| 選択したパッケージとそのバージョンに対して有効な YUM リポジトリーを検索します。 |
| インストール済みおよび利用可能なすべてのパッケージに関する情報を一覧表示します。 |
| システムにインストールされているパッケージを一覧表示します。 |
| インストール可能な有効なリポジトリーにある、すべてのパッケージを一覧表示します。 |
| システムで有効なリポジトリーを一覧表示します。 |
| システムで無効になっているリポジトリーを一覧表示します。 |
| 有効および無効の両方のリポジトリーを一覧表示します。 |
| リポジトリーの追加情報を一覧表示します。 |
| 利用可能なパッケージの詳細を表示します。 |
| システムにインストールされているパッケージの詳細を表示します。 |
| モジュールとその現在の状態を一覧表示します。 |
| モジュールの詳細を表示します。 |
| モジュールの現在の状態を表示します。 |
| 選択したモジュールの利用可能なプロファイルに関連付けられたパッケージを表示します。 |
| 指定されたストリームを使用して、モジュールの利用可能なプロファイルに関連付けられたパッケージを表示します。 |
| パッケージを提供するモジュール、ストリーム、およびプロファイルを特定します。 なお、パッケージがどのモジュールからも利用できない場合は、このコマンドの出力は空になります。 |
| インストールされているグループと利用可能なグループの数を表示します。 |
| インストール済みおよび利用可能なグループを一覧表示します。 |
| 特定のグループに含まれる必須および任意のパッケージを一覧表示します。 |
12.2. RHEL 8 でコンテンツをインストールするためのコマンド
以下は、Red Hat Enterprise Linux 8 にコンテンツをインストールするためによく使用される YUM コマンドです。
コマンド | 説明 |
---|---|
| パッケージのインストール
モジュールストリームによりパッケージが提供される場合は、必要なモジュールストリームを |
| 複数のパッケージとその依存関係を同時にインストールします。 |
| multilib システム (AMD64、Intel 64 マシン) にパッケージをインストールするときに、パッケージ名に追加してパッケージのアーキテクチャーを指定します。 |
| バイナリーへのパスを引数として使用して、バイナリーをインストールします。 |
| ダウンロード済みのパッケージをローカルディレクトリーからインストールします。 |
| パッケージ URL を使用してリモートパッケージをインストールします。 |
| 特定のストリームを使用してモジュールを有効にします。 このコマンドを実行しても RPM パッケージはインストールされないことに注意してください。 |
| 特定のモジュールストリームからデフォルトのプロファイルをインストールします。 このコマンドを実行すると、指定したストリームも有効になっていることに注意してください。 |
| 特定のストリームを使用して、選択したプロファイルをインストールします。 |
| グループ名でパッケージグループをインストールします。 |
| groupID でパッケージグループをインストールします。 |
| 正確な名前を使用してパッケージをインストールします。 |
| 正確な名前とアーキテクチャーを使用してパッケージをインストールします。 |
| 正確な名前、エポック、バージョン、リリース、アーキテクチャーを使用してパッケージをインストールします。 |
12.3. RHEL 8 でコンテンツを削除するためのコマンド
以下は、Red Hat Enterprise Linux 8 でコンテンツを削除するためによく使用される YUM コマンドです。
コマンド | 説明 |
---|---|
| 特定のパッケージとすべての依存パッケージを削除します。 |
| 複数のパッケージと、その未使用の依存関係を同時に削除します。 |
| グループ名でパッケージグループを削除します。 |
| groupID でパッケージグループを削除します。 |
| 指定されたストリームからすべてのパッケージを削除します。 このコマンドを実行すると、システムから重要なパッケージが削除される可能性があることに注意してください。 |
| インストール済みプロファイルからのパッケージを削除します。 |
| 指定したストリーム内のすべてのインストール済みプロファイルからのパッケージを削除します。 |
| モジュールを初期状態へのリセット このコマンドを実行しても、指定したモジュールからパッケージが削除されないことに注意してください。 |
| モジュールおよびそのストリームの無効化 このコマンドを実行しても、指定したモジュールからパッケージが削除されないことに注意してください。 |
| 正確な名前を使用してパッケージを削除します。 |
| 正確な名前とアーキテクチャーを使用してパッケージを削除します。 |
| 正確な名前、エポック、バージョン、リリース、アーキテクチャーを使用してパッケージを削除します。 |