パッケージが競合するカスタムチャンネルのトラブルシューティング
パッケージが競合するカスタムチャネルを設定する場合、ブートストラップリポジトリの作成などの機能が未定義の動作を引き起こし、クライアントの登録に失敗する可能性があります。
たとえば、バージョン番号がより新しい競合するパッケージがブートストラップリポジトリに含まれる可能性があります。 このようなパッケージ(たとえば、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で、Content Lifecycleに移動し、Create Projectをクリックします。
Name
とLabel
を入力します。 -
ソースをプロジェクトに割り当てます。 必要なベンダチャンネルとカスタムチャンネルを使用します。 // (CentOS8を使用した共有例)
-
プロジェクトに環境を追加します。 // CentOS8を使用した例
-
環境を構築するには、ビルドボタンをクリックします。 これにより、アクティベーションキーに関連付けて、クライアントのブートストラップに使用できるベンダチャンネルとカスタムチャンネルを備えた環境が作成されます。
-
-
重要なメモ: CLMプロジェクトでは、問題のあるパッケージや競合するパッケージを除外するフィルタを追加することをお勧めします。 これを追加しないと、より新しいバージョン番号の競合するパッケージがクライアントの更新中にインストールされます。 フィルタリングの詳細については administration:content-lifecycle-examples.adoc#exclude-higher-kernel-versionを参照してください。
-
最新のパッチをCLM環境(ベンダチャンネルおよびカスタムチャンネルを使用)に取得するには、プロジェクトのビルドボタンをクリックします。 これは、環境を再構築するために必要です。
-
CLM の詳細については、コンテンツライフサイクル管理 を参照してください。
-
別の回避策については、https://www.suse.com/releasenotes/x86_64/SUSE-MANAGER/4.2/index.html#_epel_and_salt_packagesを参照してください。
-