7.11. 解决软件包依赖项
在发布内容视图时,Satellite 可以将内容视图中的软件包依赖项添加到依赖存储库中。要配置此功能,您可以启用 依赖项解决。
例如,当您逐步将单个软件包添加到内容视图版本时,依赖项解决非常有用。您可能需要启用依赖项以安装该软件包。
然而,大多数情况下不需要依赖项解决。例如:
- 当逐步将安全勘误添加到内容视图时,依赖项解决可能会导致内容视图发布大量延迟,且无主要优势。
- 较新的勘误中的软件包可能与来自旧内容视图版本的软件包不兼容。通过发布依赖项逐步添加勘误可能会导致包含不需要的软件包。作为替代方案,请考虑更新内容视图。
依赖项只考虑内容视图存储库中的软件包。它不会考虑在客户端上安装的软件包。例如,如果内容视图仅包含 AppStream,则依赖项问题不包括在发布时依赖的 BaseOS 内容。
如需更多信息,请参阅管理内容中的 对存储库依赖解析 的限制 。
依赖项解决可能会导致以下问题:
- 内容视图发布中的重大延迟
Satellite 会检查内容视图中的每个存储库是否有依赖项。因此,发布时间会增加存储库。
要缓解这个问题,请将多个内容视图与较少的存储库一起使用,并将它们组合成复合内容视图。
- 忽略依赖软件包的内容视图过滤器
Satellite 优先选择通过您的过滤器中的规则解析软件包依赖项。
例如,如果您为安全目的创建过滤器,但启用依赖项解决,Satellite 您可以添加您可能认为不安全的软件包。
要缓解这个问题,请仔细测试过滤规则以确定所需的依赖项。如果依赖项解决包括不需要的软件包,请手动识别额外软件包和勘误表所需的核心基本依赖项。
例 7.2. 将排除过滤器与依赖项合并
例如,您可以使用内容视图过滤器重新创建 Red Hat Enterprise Linux 8.3,并从以后的 Red Hat Enterprise Linux 8 次版本中包含所选勘误。要达到此目的,您需要创建过滤器来排除 Red Hat Enterprise Linux 8.3 发行日期后的大多数勘误,但需要一些除外。然后,您可以启用依赖关系。
在这种情况下,依赖项解决可能会包括比预期更多的软件包。因此,主机会偏离 Red Hat Enterprise Linux 8.3 机器。
如果您不需要额外的勘误和软件包,请不要配置内容视图过滤。反之,在 Satellite Web UI 的 Content > Red Hat Repositories 页面中启用并使用 Red Hat Enterprise Linux 8.3 软件仓库。
例 7.3. 排除软件包有时会导致 DNF 的依赖项解决
如果您有一个带有几个排除软件包的 Red Hat Enterprise Linux 8.3 软件仓库,dnf upgrade
有时可能会失败。
不要启用依赖项解决问题。相反,调查 dnf
中的错误并调整过滤器,以停止排除缺少的依赖项。
否则,依赖项解决可能会导致仓库与 Red Hat Enterprise Linux 8.3 分离。