如何使用 debuild 运行并行 make?

ph0*_*nix 19 packaging compiling deb make debuild

我正在尝试制作一个我(共同)编写的软件包。我正在使用

debuild -i -us -uc -b 
Run Code Online (Sandbox Code Playgroud)

原则上这很好用。为了缩短编译时间,我想 debuild 以并行运行 make (例如,我通常通过运行执行make -j4)。我在网上找到了一些建议如下的位置:

debuild -eDEB_BUILD_OPTIONS="parallel=4" -us -uc -b
debuild -j4 -us -uc -b
Run Code Online (Sandbox Code Playgroud)

另一个站点建议在debian/rules基本上设置的文件中添加一些代码

MAKEFLAGS += -j4
Run Code Online (Sandbox Code Playgroud)

然而,这些似乎都不起作用。我错过了什么吗?或者我应该在源的 autoconf/automake 设置中更改某些内容?

小智 18

它必须在 debian/rules 中启用。如果软件包使用 dh,在 debian/rules 中有这样一行:

dh $@
Run Code Online (Sandbox Code Playgroud)

将其更改为

dh $@ --parallel
Run Code Online (Sandbox Code Playgroud)

然后你的命令会起作用,至少 DEB_BUILD_OPTIONS="parallel=4"

  • 请记住导出`DEB_BUILD_OPTIONS`以使所有工具都满意。 (4认同)
  • 不再需要`--parallel`选项,只需设置环境变量即可。 (4认同)

小智 10

使用 debhelper 10,您不再需要在 中提供--parallel选项debian/rules;它现在默认运行并行构建。查看发行说明

答案,因此,只需设定的内容debian/compat,以10与更新debhelper版本>=10debian/control


小智 8

我建议使用DEB_BUILD_OPTIONS环境变量,如Debian 政策手册第 4.9.1 节所述。

DEB_BUILD_OPTIONS='parallel=4' debuild -i -us -uc -b
Run Code Online (Sandbox Code Playgroud)