在 debian 中编译具有多个 cpu 内核的源包,“apt-get -b source”

ali*_*eza 9 debian apt

我使用apt-get -b source这个命令下载并编译带有一个 CPU 内核的源代码,有没有什么办法可以在 debian 中使用带有多个 CPU 内核的 apt 包管理器来编译包?像命令中的-j选项makemake -jX

谢谢。

Fah*_*tha 9

我用命令debuilddevscripts包装,这就要求dpkg-buildpackagedpkg-dev包。这比dpkg-buildpackage直接使用有一些优势,例如它会自动创建构建日志。运行后正常使用

apt-get source pkgname
Run Code Online (Sandbox Code Playgroud)

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

但是你可以做(​​例如)

debuild -uc -us -j4
Run Code Online (Sandbox Code Playgroud)

这会将 -j 标志传递给dpkg-buildpackage.

这是来自 的相关部分man dpkg-buildpackage

-jjobs 允许同时运行的作业数,相当于同名的 make(1) 选项。将自身添加到 MAKEFLAGS 环境变量中,这将导致所有后续 make 调用继承该选项。还将 parallel=jobs 添加到 DEB_BUILD_OPTIONS 环境变量中,允许 debian/rules 文件将这些信息用于自己的目的。如果给出此选项,DEB_BUILD_OPTIONS 环境变量中的 parallel=jobs 将覆盖 -j 值。

这当然不能保证工作。构建必须以合适的方式实际使用 MAKEFLAGS 或 DEB_BUILD_OPTIONS 才能产生效果。

我从未使用过apt-get -b source,但您也可以通过该命令行传递合适的标志。但是,我建议分两步完成此构建。在任何情况下,下载后直接构建在大多数情况下都不起作用。通常,您至少必须先安装构建依赖项。在您进行向后移植或以其他方式使用不是为您尝试构建的同一版本设计的包装的情况下,您可能需要在尝试构建之前修改包装。

  • `-j` 选项的可移植方式:`-j\`nproc\`` 检测 CPU 的数量(如果没有安装 `nproc`,则使用 `-j\`getconf _NPROCESSORS_ONLN\``)。 (2认同)