检查 debian/control Build-Depends: 向后移植软件包时是否可以满足要求

检查 debian/control Build-Depends: 向后移植软件包时是否可以满足要求

Debian/Ubuntu 问题在这里。我经常将软件包从较新的 Ubuntu 发行版反向移植到较旧的发行版 (LTS)。我下载(通过 dget)一个 Debian 源代码,然后 cd 进入其中并输入debuild -b.然后它会说类似的话

dpkg-checkbuilddeps: Unmet build dependencies: dh-autoreconf gnome-pkg-tools (>= 0.7) yelp-tools gtk-doc-tools (>= 1.12) pkg-config libglib2.0-dev (>= 2.29.14) libgstreamer1.0-dev (>= 0.11.92) libgstreamer-plugins-base1.0-dev (>= 0.11.92) libxml2-dev (>= 2.6.0) libsm-dev libice-dev libgtk-3-dev (>= 3.0.0) libcanberra-dev (>= 0.1) libcanberra-gtk3-dev (>= 0.1) libnautilus-extension-dev (>= 2.91.90) libburn-dev (>= 0.4.0) libisofs-dev (>= 0.6.4) libtotem-plparser-dev (>= 2.32) libunique-dev (>= 1.0.0) libnotify-dev (>= 0.6.1) gobject-introspection (>= 0.6.3) libgirepository1.0-dev (>= 0.6.3) libappindicator3-dev (>= 0.0.7) libunity-dev (>= 5.0.0)

apt-get build-dep帮助到一定程度(但下载依赖项当前的包,不适用于我要向后移植的包)。我可以手动安装所有列出的依赖项并重试debuild以查看是否dpkg-checkbuilddeps成功,但这在时间(和磁盘空间)上是昂贵的。

我想我真的需要一个工具(或脚本)来检查当前存储库Build-Depends:的要求是否debian/control可以满足(或者如果不能满足,我需要向后移植哪些其他包)。有没有一种简单的方法可以实现这一目标?

答案1

有些事情可以帮助使向后移植变得更容易。第一个是mk-build-deps。当从源目录运行时,它将创建一个依赖于当前包的虚拟包。由于此创建取决于您正在构建的包,而不是当前存储库中的包,因此如果某些依赖项无法满足,您会立即注意到。

您可以使用一种方法来检查软件包是否可以从 sid 向后移植到稳定版。 irc.oftc.net 和 irc.freenode.net 上的#debian 中的 ircbot“judd”有一个checkbackport命令。这是一个例子:

[23:53] <jordanm> checkbackport apache2
[23:53] <judd> Backporting package apache2 in sid→wheezy/i386: unsatisfiable build dependencies: Build-Depends: libaprutil1-dev (>= 1.5.0).

您自己也可以实现类似的东西。不幸的是,judd 使用的方法查询UDD(终极 Debian 数据库),这是相当大的。贾德的源代码可用这里如果您对它的实施方式感兴趣。

相关内容