跳至内容

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

简介 - 需要做什么

我们目前最需要帮助的领域,也是最容易贡献的方式,就是帮助解决软件包构建失败的问题。

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

熟悉 mock 构建工具:

查看 mock 的 wiki 页面 GitHub 仓库,获取一些入门信息,这些信息链接到 底部的其他阅读材料。

对于我们的软件包调试工作来说,最大且最相关的技术/入门页面可以在我们 wiki 上的 模拟构建指南 中找到。

我们使用 mock 程序来执行构建,就像真正的 Rocky 基础设施一样。您应该安装它并习惯使用它。请使用本指南开始,并解释一下我们希望实现什么以及为什么必须按照特定顺序构建所有这些软件包。

请仔细阅读这些内容,也许可以先试着使用 mock 构建一个或两个 SRPM,编译一些东西。

Mock 非常好用,因为它是一个易于调用的程序,可以在 chroot 内构建整个系统来执行构建,然后在完成后清理它。

如果您想查看或使用 Mock 配置文件作为参考,这里有一些公开的 配置文件(与用于测试软件包构建的“构建通过”相对应)。有关通过的更多信息,可以在 wiki 上的以下位置找到:/team/development/Build_Order/Build_Pass_{1..X}_{Artifacts,Failure,RPMs,Successful} ...(这肯定会在以后清理,我们只是想避免在如此关键的时刻破坏任何现有的链接)。

一旦您熟悉了 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 设置的形式,或者是对程序 + 规范文件的补丁。将您的发现报告给 ~Dev/Packaging 频道,有人会在 Wiki 软件包错误跟踪页面 上记录它们。

  7. 我们的目标是减少构建失败,并扩展 软件包错误跟踪 页面。如有必要,我们将构建修复提交到我们针对不同软件包的 补丁存储库