如何创建调试信息包?

lak*_*thi 6 packaging debian deb

我已经为软件创建了 rpm 包以及 debuginfo。对于 Ubuntu/Debian ,我只有打包为 .deb 的软件,但不知道如何创建 debuginfo .deb 包。请让我知道如何创建它们。

and*_*ing 6

官方档案中的包会自动为它们构建调试包。但是,它们存储在不同的存档中。它们将具有名称foo-dbgsym 您可以通过将以下内容放入您的 中来访问它们/etc/apt/sources.list

deb http://ddebs.ubuntu.com natty main restricted universe multiverse
deb http://ddebs.ubuntu.com natty-updates main restricted universe multiverse
deb http://ddebs.ubuntu.com natty-security main restricted universe multiverse
deb http://ddebs.ubuntu.com natty-proposed main restricted universe multiverse
Run Code Online (Sandbox Code Playgroud)

(用您正在运行的版本替换 natty。)

可以在此处找到有关如何生成这些的信息:


如果你想为你在官方档案之外维护的包提供调试包,那也是可能的。这篇Debian wiki 文章是最好的起点。

简而言之,您必须首先debian/control通过添加以下内容来创建新包:

Package: foo-dbg
Architecture: any
Section: debug
Priority: extra
Depends:
    foo (= ${binary:Version}),
    ${misc:Depends}
Description: debugging symbols for foo
 foo is a library that lets you do stuff.
 .
 This package contains the debugging symbols for foo.
Run Code Online (Sandbox Code Playgroud)

然后在debian/rules,用于dh_strip从二进制文件中去除调试符号,但保留它们以在调试包中使用。

override_dh_strip:
        dh_strip --dbg-package=foo-dbg
Run Code Online (Sandbox Code Playgroud)

  • 对于 ubuntu 构建 chroots,安装 pkg-create-dbgsym 将导致在该 chroot 中构建的包在剥离时也输出 -dbgsym 包。这适用于 pbuilder、sbuild、cowbuilder 等,并且是“自动”-dbgsym 包在联盟号中生成的方式。 (4认同)