第6章 RHEL 8 の新機能
本セクションでは、Red Hat Enterprise Linux 7 と 8 における RPM パッケージ化の主な変更点を説明します。
6.1. Weak 依存関係のサポート
Weak 依存関係
は、Requires
ディレクティブのバリアントです。これらのバリアントは、Epoch-Version-Release
範囲比較で仮想 Provides:
とパッケージ名に対して一致します。
Weak 依存関係
には、以下の表でまとめているように、2 つの強み (weak
と hint
) と 2 つの方向 (forward
と backward
) があります。
forward
方向は Requires:
に類似しています。backward
には、以前の依存関係システムには類似していません。
強み/方向 | Forward | Backward |
---|---|---|
Weak | 推奨: | 補助: |
Hint | 提案: | 強化: |
Weak 依存関係
ポリシーの主な利点は以下のとおりです。
- デフォルトのインストール機能の豊富さを維持しつつ、最小限のインストールが可能です。
- パッケージは、仮想の柔軟性を維持しながら、特定のプロバイダーの設定を指定できます。
6.1.1. Weak 依存関係の概要
デフォルトでは、Weak 依存関係
は、通常の Requires:
と同様に扱われます。一致するパッケージが YUM トランザクションに含まれます。パッケージの追加でとエラーが発生する場合、デフォルトでは YUM は依存関係を無視します。そのため、ユーザーは Weak 依存関係
により追加されるパッケージを除外したり、後で削除したりできます。
使用の条件
Weak 依存関係
は、パッケージが依然として依存関係なしで機能している場合に限り使用できます。
Weak の要件を追加することなく、非常に限定的な機能を持つパッケージを作成できます。
使用例
Weak の依存関係
は特に、目的が単一で、パッケージの全機能セットを必要としない仮想マシンやコンテナーを構築するなど、合理的なユースケースのためにインストールを最小限に抑えることができる場合に使用します。
Weak 依存関係
の一般的なユースケースは、以下のとおりです。
ドキュメント
- ドキュメントビューアーがない場合でも正常に処理されるドキュメントビューアー
- 例
プラグインまたはアドオン
- 対応ファイル形式
- 対応プロトコル
6.1.2. Hints の強度
Hints
はデフォルトで、YUM で無視されます。これは、GUI ツールで使用することで、デフォルトでインストールされていないアドオンパッケージを利用できます。ただし、インストールされているパッケージと組み合わせることで役に立ちます。
パッケージの主なユースケースの要件には、Hints
を使用しないでください。代わりに、このような要件を強固な依存関係または Weak 依存関係
に含めます。
パッケージ設定
YUM は Weak の依存関係
と Hints
を使用して、複数の同等に有効なパッケージ間の選択肢がある場合に使用するパッケージを決定します。インストールされているパッケージまたはインストールされるパッケージの依存関係で指示されるパッケージが推奨されます。
依存関係の解決に関する通常のルールは、この機能の影響を受けないことに注意してください。たとえば、Weak 依存関係
は、古いバージョンのパッケージが強制的に選ばれるようにすることはできません。
依存関係に複数のプロバイダーがある場合は、必須となるパッケージで Suggests:
を追加して、どのオプションが優先されるかについて依存関係リゾルバーにヒントを提供することができます。
メインパッケージおよび他のプロバイダーが、必要なパッケージにヒントを追加することが、より簡素化されたソリューションであるということに同意する場合にのみ Enhances:
が使用されます。
例6.1 Hints を使用した、ある特定のパッケージの優先
Package A: Requires: mysql Package mariadb: Provides: mysql Package community-mysql: Provides: mysql
community-mysql
パッケージよりも mariadb
パッケージを優先する場合は、以下を使用します。
Suggests: mariadb to Package A.
6.1.3. Forwared と Backward の依存関係
Forward 依存関係
は Requires
と同様に、インストールするパッケージに対して評価されます。最も一致するパッケージもインストールされます。
一般的には、Forward 依存関係
が優先されます。システムに追加された別のパッケージを取得する場合は、この依存関係をパッケージに追加します。
Backward 依存関係
の場合、一致するパッケージもインストールされていると、その依存関係を含むパッケージがインストールされます。
Backward 依存関係
は主に、そのプラグイン、アドオン、エクステンション機能をディストリビューションやその他サードパーティーパッケージにアタッチできるサードパーティーベンダー向けに設計されています。