使用dpkg-buildpackage创建多个包

时间:2014-07-10 07:20:11

标签: package debian deb dpkg

我有一个源树结构,如 -

/src 
   /moduleA
   /moduleB
   /common

其中moduleA和moduleB需要单独打包,但共享公共代码。

是否可以使用dpkg-buildpackage创建2个单独的二进制包?

谢谢!

1 个答案:

答案 0 :(得分:2)

有可能。为此,您应该修改控制文件。 当您使用dh_make -s时,您会有以下内容:

Source: yourpackage
Section: unknown
Priority: optional
Maintainer: toto <toto@unknown>
Build-Depends: debhelper (>= 8.0.0), autotools-dev
Standards-Version: 3.9.4
Homepage: <insert the upstream URL, if relevant>
#Vcs-Git: git://git.debian.org/collab-maint/libsnow.git
#Vcs-Browser: http://git.debian.org/?p=collab-maint/libsnow.git;a=summary

Package: yourpackage
Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends}
Description: <insert up to 60 chars description>
 <insert long description, indented with spaces>

你所要做的就是添加一个这样的段落:

Package: yourpackagebis
Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends}
Description: <insert up to 60 chars description>
 <insert long description, indented with spaces>

(我应该警告你,你只能使用小写字符作为包名)。完成后,您必须指定哪个文件将放在哪里。您必须创建四个新文件:yourpackage.dirs,yourpackage.install,yourpackagebis.dirs和yourpackagebis.install。在yourpackage.dirs中,您必须指定需要创建的目录(每行一个)。在yourpackage.install中,你必须告诉dpkg-buildpackage应该把什么文件放在你的包中,以及放在哪里。它必须采用以下格式(每行一个):

moduleA/foo usr/bin

(假设你的makefile在src /中。它可能不是usr / bin)。 yourpackagebis.dirs和yourpackagebis.install的工作方式与yourpackagebis包相同。