【问题标题】:Should a source code repository be laid out to match the .deb build directory structure?是否应该布置源代码存储库以匹配 .deb 构建目录结构?
【发布时间】:2014-04-20 20:05:21
【问题描述】:

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

myapp.conf
myexecutable

运行 build.sh 后我得到:

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

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

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

【问题讨论】:

    标签: git version-control packaging deb


    【解决方案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/ 目录(可能还有补丁,因为您控制上游源,所以这不适用于您的情况)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-16
      • 2017-05-07
      • 1970-01-01
      • 1970-01-01
      • 2015-11-07
      • 1970-01-01
      相关资源
      最近更新 更多