构建 Debian 软件包,无需捆绑在一起的关联软件包

构建 Debian 软件包,无需捆绑在一起的关联软件包

当我构建 debian 软件包时,通常会构建许多捆绑在一起的相关软件包,以及foo-dbgsym-*版本和foo-doc软件包。

例如,即使是相对简单的包,例如make,也会构建额外的包:

make-dbgsym_4.2.1-1.2_amd64.deb
make-guile-dbgsym_4.2.1-1.2_amd64.deb
make-guile_4.2.1-1.2_amd64.deb
make_4.2.1-1.2_amd64.deb

我可以告诉构建系统只构建make而不构建吗make-guile

这是我用于构建包的过程:

apt-get source make
cd make*
dpkg-buildpackage --build=binary --no-sign

是否有一个通用流程可以指定我想要构建哪些包?

Make 是一个简单的例子,但是较大的包会构建许多我不感兴趣的包版本,这些版本需要安装依赖库,并且构建过程需要更长的时间。

答案1

dbgsym可以使用禁用包构建noautodbgsym选项:

DEB_BUILD_OPTIONS=noautodbgsym dpkg-buildpackage -us -uc

--build通过更改上的选项,也可以仅构建依赖于体系结构或独立于体系结构的包dpkg-buildpackage

除此之外,没有通用的方法来挑选和选择要构建的包和要安装的依赖项。特别是,构建依赖项并不与它们相关的二进制包绑定。

一些包支持建立档案;您可以通过在 中查找Build-Profiles和/或尖括号依赖项来确定这一点debian/control。在此类包上,dpkg-buildpackage-P选项选择适当的配置文件,有时与构建选项结合使用。例如,在带有nocheck配置文件的包上,

DEB_BUILD_OPTIONS=nocheck dpkg-buildpackage -Pnocheck

将跳过与测试相关的构建依赖项(如果有)并跳过运行测试。

事实上,最新版本的make软件包声称提供了noguile构建配置文件,因此应该可以跳过 Guile

dpkg-buildpackage -Pnoguile -us -uc

除了那个配置文件定义不完整

始终可以进行编辑debian/control以删除不相关的包,并debian/rules删除不相关的构建步骤。

相关内容