对包含有冲突软件包的自定义通道进行查错
设置包含有冲突软件包的自定义通道时,某些功能(例如创建引导储存库)可能会导致未定义的行为,并使客户端注册失败。
例如,版本号较高的有冲突软件包可能会包含在引导储存库中。此类软件包(例如 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 Multi-Linux 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 Multi-Linux Manager 提供的 Salt 软件包中包含的某些功能。此问题非常严重,因为这样将会生成一个包含非 SUSE Salt 软件包的引导储存库。因此,系统不支持这样的使用场景。 如果您需要启用 EPEL 储存库,请务必提前过滤掉 EPEL 提供的 Salt 软件包(例如,在 中去除 Salt 软件包)。 |