パッケージが競合するカスタムチャンネルのトラブルシューティング
パッケージが競合するカスタムチャンネルを設定する場合、ブートストラップリポジトリの作成などの機能が未定義の動作を引き起こし、クライアントの登録に失敗する可能性があります。
たとえば、バージョン番号がより新しい競合するパッケージがブートストラップリポジトリに含まれる可能性があります。 このようなパッケージ(たとえば、python3-zmq
やzeromq
)により、ブートストラップリポジトリの作成が破損したり、クライアントのブートストラップ中に問題が発生する可能性があります。
カスタムチャンネル(たとえば、EPELチャンネル)が親ベンダチャンネルの下に追加されると、パッケージの競合に関する問題を直接解決できません。 これを解決する方法は、カスタムチャンネルをベンダチャンネルから分離する方法です。 カスタムチャンネルを別のツリーで作成する必要があります。 カスタムチャンネルを子として配信する必要がある場合は、このような環境をコンテンツライフサイクル管理(CLM)を使用して作成できます。 CLMプロジェクトのソースは別のツリーからそこに追加できます。 このようなアプローチを使用すると、カスタムチャンネルは構築された環境内で親の下に維持されます。 ただし、ベンダチャンネルツリーはカスタムチャンネルとブートストラップリポジトリなしで維持されます。 その後、クライアントの登録は正しく機能します。
競合するパッケージ(salt、zeromqなど)を持つカスタムチャンネルを子チャンネルとして作成する場合は、次のステップに従うことで問題を回避できます。
-
カスタムチャンネルを親チャンネルから子チャンネルとして削除します。 詳細については、administration:custom-channels.adoc#_manage_custom_channelsを参照してください。
-
別のツリーでカスタムチャンネルを作成します。 詳細については、administration:custom-channels.adoc#_creating_custom_channels_and_repositoriesを参照してください。 コンテンツライフサイクル管理(CLM)内で子チャンネルとしてカスタムチャンネルを取得するには、次の手順に従います。
-
SUSE ManagerのWeb UIで、コンテンツライフサイクルに移動し、プロジェクトの作成をクリックします。 [
名前
]と[ラベル
]に入力します。 -
ソースをプロジェクトに割り当てます。 必要なベンダチャンネルとカスタムチャンネルを使用します。 (CentOS8を使用した共有例)
-
プロジェクトに環境を追加します。 たとえば、CentOS8を使用します。
-
環境を構築するには、ビルドボタンをクリックします。 これにより、アクティベーションキーに関連付けて、クライアントのブートストラップに使用できるベンダチャンネルとカスタムチャンネルを備えた環境が作成されます。
-
-
重要なメモ: CLMプロジェクトでは、問題のあるパッケージや競合するパッケージを除外するフィルタを追加することをお勧めします。 これを追加しないと、より新しいバージョン番号の競合するパッケージがクライアントの更新中にインストールされます。 フィルタリングの詳細については administration:content-lifecycle-examples.adoc#exclude-higher-kernel-versionを参照してください。
-
最新のパッチをCLM環境(ベンダチャンネルおよびカスタムチャンネルを使用)に取得するには、プロジェクトのビルドボタンをクリックします。 これは、環境を再構築するために必要です。
-
CLM の詳細については、コンテンツライフサイクル管理 を参照してください。
-
Red Hat Enterprise Linuxクライアント(または互換性のあるSUSE Liberty Linux、CentOS、Oracle Linuxなど)でExtra Packages for Enterprise Linux (EPEL)を直接使用すると、EPELからSaltパッケージがインストールされますが、SUSE Managerが提供するSaltパッケージで利用可能な一部の機能が失われます。 これは、ブートストラップリポジトリにSUSE以外のSaltパッケージが含まれるため、特に重要です。 したがって、これはサポート対象外のシナリオです。 EPELリポジトリを有効にする必要がある場合は、事前にEPELからSaltパッケージを除外してください(たとえば、 でSaltパッケージを削除します)。 |