是否应该布置源代码存储库以匹配.deb构建目录结构?

时间:2014-04-20 20:05:22

标签: git version-control packaging deb

我有一个现有的git repo,其中包含我要在.deb中打包的文件。目前,我的源代码主要位于一个平面目录中,我有一个构建脚本,可以将相关文件复制到Debian软件包构建目录中。例如

myapp.conf
myexecutable

运行build.sh后我得到:

./build/etc/myapp.conf
./build/usr/bin/myexecutable

然后我将此目录构建到我的.deb

但是,我可以通过将所有源代码保存在镜像.deb构建目录结构的目录结构中来删除此中间复制步骤吗?有什么缺点?

1 个答案:

答案 0 :(得分:1)

我认为您是相关软件的主要内容。

您要做的是将debian/目录添加到包的顶层,并在其中创建Debian包文件。有一个工具(dh_make来自dh-make包)。

使用dh_make创建一个" Debian本机包"。 "本机"在这种情况下意味着软件的维护者和Debian软件包的维护者是同一个人(你),而不是你打包别人的软件。

转到您的源目录,然后运行dh_make -n,然后在命令行上回答问题。然后,切换到已创建的debian/目录并编辑各种文件。删除您不需要的示例文件(您很可能不会需要大部分文件)。

如果您的项目使用make,并且您使用的是标准make目标,那么您很可能在此之后还有很多工作要做。 Debian工具链非常适合为您解决问题。

如果您使用 Git 进行源代码管理,则应安装git-buildpackage并将其用于构建软件包和发布版本。请参阅其文档。

您的包目录结构根本不需要更改 - 只会添加debian/目录。 Debian软件包总是来自一个" Debian源软件包",它是软件的源代码树,加上debian/目录(以及可能的补丁,自你控制以来不适用于你的情况)上游来源)。