如何通过 dpkg-buildpackge 设置版本号和包文件名以在构建服务器上进行自动构建?

Ste*_*fan 6 packaging dpkg

我们的构建服务器通过dpkg-buildpackage. 服务器通过 git 检查源代码并通过make <target>. 源目录包含debian/dpkg 配置文件所在的子目录。

我想将内部构建计数器编号添加到当前包版本并进一步设置包文件名,但dpkg-buildpackage不允许我控制结果的外观package_version_arch.deb。我怎样才能实现这个目标?

mur*_*uru 2

看一下git-buildpackage

自定义快照编号

如果快照编号的自动递增不适合您的需要,您可以给出任何计算结果为正整数的 python 表达式来计算新的快照编号:

gbp dch -S -a --snapshot-number=1  
gbp dch -S -a --snapshot-number='snapshot + 2'
gbp dch -S -a --snapshot-number='os.popen("git-log --pretty=oneline | wc -l").readlines()[0]'
gbp dch -S -a --snapshot-number=`git-log --pretty=oneline debian/0.3.3 | wc -l`
Run Code Online (Sandbox Code Playgroud)

您还可以将快照编号计算添加到gbp.conf

[DEFAULT]
snapshot-number = os.popen("git-log --pretty=oneline | wc -l").readlines()[0]
Run Code Online (Sandbox Code Playgroud)

  • 我明白。我仍然不想使用“git-buildpackage”,但单独使用“dpkg-buildpackage”,因为“git-buildpackage”再次对项目/目录布局有一定的要求。 (3认同)

小智 0

您可以更改控制文件 sampkg/DEBIAN/control 中的版本号

控制文件是Debian软件包的核心;它包含所有相关的元数据。包名称、版本、支持的架构和依赖项等信息都包含在该文件中。

Package: sampkg
Architecture: all
Essential: no
Section: web
Priority: optional
Depends: python (>=2.3)
Maintainer: Swaminathan Mathivanan
Description: Sample package.
Run Code Online (Sandbox Code Playgroud)

最终的 pkg 名称将为 sampkg_ 1.0.0 _all.deb