debuginfo rpm 什么时候生成?

debuginfo rpm 什么时候生成?

我有一系列 RPM 规范文件,但其中未设置任何 debuginfo 指令。当我运行 rpmbuild 时,有些软件包会生成 debuginfo rpm,有些则不会。rpm 决定是否生成 debuginfo 的标准是什么?在我看来:

  • 只有 arch 软件包会生成调试信息(noarch 软件包不会)
  • 仅规范中的主包会生成调试信息(子包不会)

有人可以确认这些规则是否有效以及是否还有其他规则?

我已经安装了 redhat-rpm-config,根据https://fedoraproject.org/wiki/Packaging:Debuginfo?rd=Packaging/Debuginfo

答案1

为了生成 debuginfo RPM,%debug_package需要将指令添加到 .spec 文件中(通常,在所有包和子包定义之后和该%prep部分之前,被空行包围)。

参考:https://trac.netlabs.org/rpm/wiki/RpmHowToPackagers#Generatingdebuginfopackages

另一个很好的博客:https://distracted-it.blogspot.com/2014/08/building-rpm-debuginfo-package-not.html

答案2

2022 年更新答案。

Debuginfo 是针对二进制文件自动生成的(架构是不是 noarch) 软件包,除非使用以下方法禁用:

%global debug_package %{nil}

参考https://docs.fedoraproject.org/en-US/packaging-guidelines/Debuginfo/#_missing_debuginfo_packages

noarch 软件包构建不生成 debuginfo 软件包是正常的。如果在其他情况下(未明确禁用)缺少该软件包,则说明存在问题。其中一种情况是 缺少 %build 部分带有一些 rpmbuild 版本。

答案3

%debug_package必须包含在.spec文件中。我以前在阶段之前写过 %prep。另外,__debug_package宏必须是 1。

相关内容