跳至内容

如何提供帮助 - 入门包调试

简介 - 需要做什么

目前我们最需要帮助的领域,也是最容易贡献的方式,就是协助排除打包构建失败的问题。

我们正在重构 CentOS 8.3 作为“练习”,以便我们能提前发现并解决官方 Rocky 构建中出现的任何问题。我们正在记录我们发现的包中的任何错误以及如何修复它们(以使其能够构建)。这些文档将在进行官方构建时,帮助我们的发布工程团队。

熟悉 mock 构建工具:

请查看 mockGitHub 仓库 上的 wiki,其中包含一些入门信息,并链接到 底部 的其他阅读材料。

本次打包调试工作中最重要、最相关的技术/入门页面,可以在我们 wiki 的 Mock 构建指南 上找到。

我们正在使用 mock 程序来执行构建,就像真正的 Rocky 基础设施一样。你应该安装它并非常熟悉它。请使用本指南开始,并简要说明我们希望实现的目标以及为什么我们需要按特定顺序构建所有这些包。

请仔细阅读这些内容,并通过让你的 mock 尝试构建一两个 SRPM 包来尝试一下。

Mock 非常出色,因为它是一个易于调用的程序,它会在 chroot 环境中构建一个完整的系统来进行构建,然后进行清理。

如果您需要参考 Mock 配置文件来查看或尝试,有一些已发布的配置 在此(对应于用于测试打包构建的“构建通道”)。有关构建通道的更多信息可以在 wiki 上找到:/team/development/Build_Order/Build_Pass_{1..X}_{Artifacts,Failure,RPMs,Successful} ...(这将在稍后进行清理,我们只是想避免在如此关键的节点上破坏任何现有链接)。

一旦您熟悉了 mock(特别是深入研究其输出日志),我们就有了一个需要调查并提出解释和/或修复方案的失败包列表。

协助调试工作:

一旦您熟悉了 Mock,特别是调试其输出,您就可以开始查看失败的包了。其中一些信息也在 Mock 构建指南 页面上。

  1. 在最新的构建通道失败页面(目前是 构建通道 10)上找到一个失败的包。

  2. 确保该软件包尚未被查看和/或修复:https://wiki.rocky-linux.cn/en/team/development/Package_Error_Tracking

  3. 让其他调试人员知道您正在做什么!我们不希望重复劳动。请加入 Mattermost 上的 ~Dev/Packaging 频道!

  4. 使用我们正在使用的 最新配置文件 来设置您的 mock 程序。您可以使用它以我们相同的方式尝试构建(包括外部依赖项、额外仓库等)。

  5. 调查错误:您可以使用您自己的 mock,以及位于此处的构建失败时的日志文件:https://rocky.lowend.ninja/RockyDevel/MOCK_RAW/

  6. 弄清楚发生了什么以及如何修复它。这可能需要特殊的 mock 设置,或者向程序 + specfile 添加一个补丁。将您的发现报告给 ~Dev/Packaging 频道,然后会有人将其记录在 Wiki Package_Error_Tracking 页面 上。

  7. 目的是缩小构建失败的范围,并扩大 Package_Error_Tracking 页面。如有必要,我们将把构建修复提交到我们不同软件包的 补丁仓库