アプリケーション ストリームの概要
CentOS/RHEL 8.0 では、アプリケーション ストリームの概念が導入されています。ディストリビューションに同梱されているユーザー空間コンポーネントの複数のバージョンが同時に配信されるようになりました。これらは、コア オペレーティング システム パッケージよりも頻繁に更新される可能性があります。これにより、プラットフォームや特定の展開の基盤となる安定性に影響を与えることなく、Red Hat Enterprise Linux をより柔軟にカスタマイズできます。
従来、アプリケーションのソフトウェア パッケージとその関連パッケージの代替バージョンを管理することは、異なるバージョンごとに異なるリポジトリを維持することを意味していました。アプリケーションの最新バージョンが必要な開発者と、アプリケーションの最も安定したバージョンが必要な管理者にとって、これは管理が面倒な状況を生み出しました。このプロセスは、Red Hat Enterprise Linux 8 ではモジュラリティと呼ばれる新しいテクノロジーを使用して簡素化されています。モジュール性により、単一のリポジトリでアプリケーションのパッケージとその依存関係の複数のバージョンをホストできます。
CentOS/RHEL 8 のコンテンツは、BaseOS と Application Stream (AppStream) の 2 つの主要なソフトウェア リポジトリを通じて配布されます。
BaseOS
BaseOS リポジトリは、Red Hat Enterprise Linux のコア オペレーティング システム コンテンツを RPM パッケージとして提供します。 BaseOS コンポーネントのライフサイクルは、以前の CentOS/RHEL リリースのコンテンツと同じです。
アプリケーション ストリーム
Application Stream リポジトリは、モジュールと従来のパッケージの両方として、さまざまなライフ サイクルを持つコンテンツを提供します。 Application Stream には、システムの必要な部分だけでなく、以前は Red Hat Software Collections やその他の製品やプログラムの一部として利用できた幅広いアプリケーションが含まれています。
注意 :BaseOS と AppStream の両方が、CentOS/RHEL 8 システムに必要な部分です。Application Stream リポジトリには、モジュールと従来の RPM パッケージの 2 種類のコンテンツが含まれています。モジュールは、一緒に属する一連の RPM パッケージを記述します。モジュールには、複数のバージョンのアプリケーションをインストールできるようにするために、複数のストリームを含めることができます。モジュール ストリームを有効にすると、システムはそのモジュール ストリーム内の RPM パッケージにアクセスできるようになります。
モジュール
モジュールは、一緒に属する一貫したセットである RPM パッケージのセットです。通常、これはソフトウェア アプリケーションまたはプログラミング言語の特定のバージョンを中心に編成されます。一般的なモジュールには、アプリケーションを含むパッケージ、アプリケーション固有の依存関係ライブラリを含むパッケージ、アプリケーションのドキュメントを含むパッケージ、およびヘルパー ユーティリティを含むパッケージを含めることができます。
モジュール ストリーム
各モジュールには、コンテンツの異なるバージョンを保持する 1 つ以上のモジュール ストリームを含めることができます。各ストリームは個別に更新を受け取ります。モジュール ストリームは、Application Stream 物理リポジトリ内の仮想リポジトリと考えてください。モジュールごとに、そのストリームの 1 つだけを有効にして、そのパッケージを提供できます。
モジュール プロファイル
各モジュールは、1 つ以上のプロファイルを持つことができます。プロファイルは、サーバー、クライアント、開発、最小限のインストールなど、特定のユースケースのために一緒にインストールされる特定のパッケージのリストです。特定のモジュール プロファイルをインストールすると、モジュール ストリームから特定のパッケージ セットがインストールされます。その後、通常どおりパッケージをインストールまたはアンインストールできます。プロファイルを指定しない場合、モジュールはデフォルトのプロファイルをインストールします。
YUM を使用したモジュールの管理
CentOS/RHEL 8 の新しい Yum バージョン 4 は、Application Stream の新しいモジュラー機能のサポートを追加します。モジュラー コンテンツを処理するために、yum module コマンドが追加されました。それ以外の場合、yum は通常のパッケージと同じようにモジュールで動作します。
モジュールの一覧表示
利用可能なモジュールのリストを表示するには、yum module list を使用します:
[user@host ~]$ yum module list Red Hat Enterprise Linux 8.0 AppStream - AppStream HTB (RPMs) Name Stream Profiles Summary 389-ds 1.4 default 389 Directory Server (base) ant 1.10 [d] common [d] Java build tool container-tools 1.0 [d] common [d] Common tools and dependencies for container runtimes ...output omitted... Hint: [d]efault, [e]nabled, [x]disabled, [i]nstalled注意 :出力の最後にあるヒントを使用して、どのストリームとプロファイルが有効、無効、インストールされているか、およびデフォルトであるかを判断できます。
特定のモジュールのモジュール ストリームを一覧表示し、そのステータスを取得するには:
[user@host ~]$ yum module list perl Red Hat Enterprise Linux 8 for x86_64 - AppStream HTB (RPMs) Name Stream Profiles Summary perl 5.24 common [d], minimal Practical Extraction and Report Language perl 5.26 [d] common [d], minimal Practical Extraction and Report Language
デフォルトのモジュール ストリームによってインストールされたパッケージを一覧表示するには:
[user@host ~]$ yum module info perl Name : perl Stream : 5.26 [d][a] Version : 820181219174508 Context : 9edba152 Profiles : common, minimal Default profiles : default Repo : rhel-8-fo r-x86_64-appstream-htb-rpms Summary : Practical Extraction and Report Language ...output omitted... Artifacts : perl-4:5.24.4-401.module+el8+2464+d274aed1.x86_64 : perl-Algorithm-Diff-0:1.1903-9.module+el8+2464+d274aed1.noarch : perl-Archive-Tar-0:2.30-1.module+el8+2464+d274aed1.noarch ...output omitted...
注意 :モジュール ストリームを指定しない場合、yum module info はデフォルトのモジュール ストリームの詳細を表示します。 module-name:stream 形式を使用して、特定のモジュール ストリームを表示します。 –profile オプションを追加して、各モジュールのプロファイルによってインストールされたパッケージに関する情報を表示します。例:
[user@host ~]$ yum module info --profile perl:5.24
モジュール ストリームの有効化とモジュールのインストール
モジュールをインストールするには、モジュール ストリームを有効にする必要があります。このプロセスを簡素化するために、モジュールがインストールされると、必要に応じてそのモジュール ストリームが有効になります。モジュール ストリームは、yum module enable を使用して手動で有効にできます モジュール ストリームの名前を指定します。
注意 :特定のモジュールに対して有効にできるモジュール ストリームは 1 つだけです。追加のモジュール ストリームを有効にすると、元のモジュール ストリームが無効になります。デフォルトのストリームとプロファイルを使用してモジュールをインストールします:
[user@host ~]$ sudo yum module install -y perl Dependencies resolved. ================================================================================ Package Arch Version Repository Size ================================================================================ Installing group/module packages: perl x86_64 4:5.26.3-416.el8 rhel-8-for-x86_64-appstream-htb-rpms 72 k Installing dependencies: ...output omitted... Running transaction Preparing : 1/1 Installing : perl-Exporter-5.72-396.el8.noarch 1/155 Installing : perl-Carp-1.42-396.el8.noarch 2/155 ...output omitted... Installed: perl-4:5.26.3-416.el8.x86_64 perl-Encode-Locale-1.05-9.el8.noarch ...output omitted... Complete!注意 :yum install @perl を実行しても同じ結果が得られた可能性があります。 @ 表記は、引数がパッケージ名ではなくモジュール名であることを yum に通知します。
モジュール ストリームとインストールされているプロファイルのステータスを確認するには:
[user@host ~]$ yum module list perl Red Hat Enterprise Linux 8.0 AppStream - AppStream HTB (RPMs) Name Stream Profiles Summary perl 5.24 common, minimal Practical Extraction and Report Language perl 5.26 [d][e] common [i], minimal Practical Extraction and Report Language Hint: [d]efault, [e]nabled, [x]disabled, [i]nstalled
モジュールの削除とモジュール ストリームの無効化
モジュールを削除すると、現在有効になっているモジュール ストリームのプロファイルによってインストールされたすべてのパッケージと、これらに依存するすべてのパッケージとモジュールが削除されます。このモジュール ストリームからインストールされ、どのプロファイルにもリストされていないパッケージは、システムにインストールされたままになり、手動で削除できます。
注意 :モジュールの削除とモジュール ストリームの切り替えは、少し難しい場合があります。モジュールで有効になっているストリームを切り替えることは、現在のストリームをリセットして新しいストリームを有効にすることと同じです。インストールされているパッケージが自動的に変更されることはありません。手動で行う必要があります。現在インストールされているモジュール ストリームとは異なるモジュール ストリームを直接インストールすることはお勧めしません。インストール中にアップグレード スクリプトが実行され、元のモジュール ストリームが壊れてしまう可能性があるためです。これにより、データの損失やその他の構成の問題が発生する可能性があります。慎重に進むインストール済みモジュールを削除するには:
[user@host ~]$ sudo yum module remove -y perl Dependencies resolved. ===================================================================================================== Package ArchVersion Repository Size ===================================================================================================== Removing: perl x86_644:5.26.3-416.el8 @rhel-8-for-x86_64-appstream-htb-rpms 0 Removing unused dependencies: ...output omitted... Running transaction Preparing : 1/1 Erasing : perl-4:5.26.3-416.el8.x86_64 1/155 Erasing : perl-CPAN-2.18-397.el8.noarch 2/155 ...output omitted... Removed: perl-4:5.26.3-416.el8.x86_64 dwz-0.12-9.el8.x86_64 ...output omitted... Complete!
モジュールが削除された後も、モジュール ストリームは引き続き有効です。モジュール ストリームがまだ有効であることを確認するには:
[user@host ~]$ yum module list perl Red Hat Enterprise Linux 8.0 AppStream - AppStream HTB (RPMs) Name Stream Profiles Summary perl 5.24 common [d], minimal Practical Extraction and Report Language perl 5.26 [d][e] common [d], minimal Practical Extraction and Report Language Hint: [d]efault, [e]nabled, [x]disabled, [i]nstalled
[user@host ~]$ sudo yum module disable perl ...output omitted... Dependencies resolved. ================================================================================= Package Arch Version Repository Size ================================================================================= Disabling module streams: perl 5.26 Is this ok [y/N]: y Complete!
モジュール ストリームの切り替え
モジュール ストリームを切り替えるには、通常、コンテンツを別のバージョンにアップグレードまたはダウングレードする必要があります。クリーンな切り替えを確実に行うには、モジュール ストリームによって提供されるモジュールを最初に削除する必要があります。これにより、モジュールのプロファイルによってインストールされたすべてのパッケージと、それらのパッケージが依存しているすべてのモジュールとパッケージが削除されます。
別のモジュール ストリームを有効にしてモジュールをインストールするには:
[user@host ~]$ sudo yum module install perl:5.24
新しいモジュール ストリームが有効になり、現在のストリームが無効になります。新しいプロファイルにリストされていない以前のモジュール ストリームからパッケージを更新またはダウングレードする必要がある場合があります。必要に応じて、yum distro-sync を使用してこのタスクを実行します。以前のモジュール ストリームからインストールされたままのパッケージがある場合もあります。 yum remove を使用してそれらを削除します。