源代码存储库是否应该与.deb构建目录结构相匹配



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

myapp.conf
myexecutable

运行build.sh后,我得到:

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

然后我将这个目录构建到我的CCD_ 2中。

但是,我可以通过在一个镜像.deb构建目录结构的目录结构中维护我的所有源代码来省去这个中间复制步骤吗?缺点是什么?

我认为您是该软件的维护者。

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

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

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

如果你的项目使用make,而你使用标准的make目标,那么在那之后你很可能没有太多工作要做。Debian工具链在为您解决问题方面非常聪明。

如果您使用Git进行源代码管理,则应该安装git-buildpackage并使用它来构建包和发布。请参阅其文档。

您的程序包目录结构根本不应该更改–将仅添加CCD_ 13目录。Debian包总是从"Debian源代码包"构建的,该包是软件的源代码树,加上debian/目录(可能还有补丁,由于您控制上游源代码,因此不适用于您的情况)。

最新更新