Zesty 中的 qtbase5-dbg 包发生了什么?

Nat*_*man 4 package-management debugging qt 17.04

我正在尝试使用以下命令为 Qt 核心库安装调试符号,该命令在 16.10 中运行良好:

sudo apt-get install qtbase5-dbg
Run Code Online (Sandbox Code Playgroud)

但是,这在 Zesty 中不起作用:

$ sudo apt-get install qtbase5-dbg
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Package qtbase5-dbg is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source

E: Package 'qtbase5-dbg' has no installation candidate
Run Code Online (Sandbox Code Playgroud)

仔细检查后,我发现其他 Qt 软件包都*-dbg不再提供随附的软件包。

这些包发生了什么变化以及如何获取调试符号?

Nat*_*man 9

我向ubuntu-devel-discuss邮件列表提交了这个问题,Mattia Rizzolo 回复了以下回复

Debian 正在慢慢地放弃手动调试符号包 (-dbg),转而使用自动调试符号包 (-dbgsym)。

https://lists.debian.org/debian-devel/2015/12/msg00262.html

Ubuntu 从那时起就有自动调试包 (.ddebs),如果存在手动 -dbg 包,它会过渡地将其拉入:https ://wiki.ubuntu.com/Debug%20Symbol%20Packages

我知道在 Ubuntu 构建调试包方面发生了一些工作,就像现在的 Debian 一样,我猜这项工作将(非常)缓慢地使它们收敛。

这有点令人沮丧,因为这不仅没有在任何明显的地方说明,而且https://packages.ubuntu.com不显示.ddeb文件并造成-dbgsym包不存在的错误印象。


现在为解决方案。

创建一个名为ddebs.listin的文件,/etc/apt/sources.list.d内容如下:

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

* 您可能需要 root 权限才能创建文件

然后,您需要运行apt-get update以刷新软件包列表。为 Qt 核心库提供调试符号的包被命名libqt5core5a-dbgsym并且可以安装:

sudo apt-get install libqt5core5a-dbgsym
Run Code Online (Sandbox Code Playgroud)