8.8. 解决软件包依赖项
在发布内容视图时,Satellite 可以在内容视图中添加软件包的依赖项到依赖的存储库。要配置此功能,您可以启用 依赖项解析。
例如,当您逐步将单个软件包添加到内容视图版本时,依赖项会很有用。您可能需要启用依赖项,以安装该软件包。
然而,在大多数情况下,依赖项无法解决。例如:
- 当逐步添加安全勘误到内容视图时,依赖项解决可能会导致对内容视图发布造成大量延迟,而不会造成主要好处。
- 较新的勘误中的软件包可能会具有与旧内容视图版本中的软件包不兼容的依赖项。使用依赖项解析以递增方式添加勘误可能包括不需要的软件包。作为替代方案,请考虑更新内容视图。
依赖项有助于仅考虑内容视图的存储库中的软件包。它不考虑客户端上安装的软件包。例如,如果内容视图仅包含 AppStream,依赖项需要包括在发布时不包含依赖 BaseOS 内容。
如需更多信息,请参阅管理内容中的 对存储库依赖解析的限制。
依赖项解决可能会导致以下问题:
- 内容视图发布中的显著延迟
Satellite 会在内容视图中针对依赖项检查每个存储库。因此,发布时间会增加存储库。
要缓解这个问题,请使用带有较少存储库的多个内容视图,并将它们合并到复合内容视图中。
- 忽略依赖软件包的内容视图过滤器
Satellite 优先选择根据过滤器中的规则解析软件包依赖项。
例如,如果您为安全目的创建过滤器,但启用依赖项解析,Satellite 您可以添加可能认为不安全的软件包。
要缓解这个问题,请仔细测试过滤规则以确定所需的依赖项。如果依赖项解决包括不需要的软件包,请手动识别额外的软件包和勘误所需的核心基本依赖项。
例 8.1. 将排除过滤器与依赖项解决合并
您需要使用 Content View 过滤器重新创建 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 软件仓库。
例 8.2. 排除软件包有时会使 DNF 无法进行依赖项解决
如果您制作带有一些排除的软件包的 Red Hat Enterprise Linux 8.3 软件仓库,dnf update
有时可能会失败。
不要启用依赖项来解决问题。相反,应调查 dnf
中的错误,并调整过滤器以停止排除缺少的依赖项。
否则,依赖项解决可能会导致存储库从 Red Hat Enterprise Linux 8.3 分离。