使用命令行选项构建deb包版本

时间:2017-09-26 21:30:17

标签: ubuntu ubuntu-14.04 deb

新手打造deb包。我有一个构建脚本来为Ubuntu生成包。 changelog中有版本号。我想在不使用changelog文件触及version的情况下自动构建deb包的过程,该文件只包含1.0.0之类的版本号。

如何将版本号传递给debuild命令?

   debuild --no-lintian --preserve-envvar=PATH --check-dirname-level 0 --no-tgz-check -uc -us

2 个答案:

答案 0 :(得分:2)

我没有足够的代表发表评论,但我可以想到两种方法来实现这一目标。

第一种方法是从文件中读取所有选项并对其执行debuild,包括版本号(假设您使用' debuild'全局别名或函数):

#!/bin/bash
file="/home/user/build_options.txt"
while IFS= read -r line
do
    debuild $line
done <"$file"

您的build_options.txt文件类似于:

--version 1.0.0 --no-lintian --preserve-envvar=PATH --check-dirname-level 0 --no-tgz-check -uc -us
--version 1.0.1 --no-lintian --preserve-envvar=PATH --check-dirname-level 0 --no-tgz-check -uc -us
...

第二种方法取决于你所写的语言&#34; debuild&#34;脚本in。我假设您正在围绕dpkg-deb创建一个包装器?本质上,您为--version选项编写了一个函数,该函数需要一个文件的路径打开并逐行读取版本号,逗号分隔等。在Python中,这可以通过{{1模块(参见https://docs.python.org/2/howto/argparse.html)。在这个TensorFlow脚本中可以看到另一个很好的工作示例:https://github.com/tensorflow/tensorflow/blob/r1.3/tensorflow/examples/learn/wide_n_deep_tutorial.py

第二种方法的一般想法是编写一个使用argparse标志读取版本文件的函数,但此解决方案将特定于您选择的语言。可能相关:https://github.com/tarantool/tarantool/wiki/Automatic-RPM-DEB-Packages-module-building

答案 1 :(得分:1)

一般的想法是,debian包的新版本由changelog条目决定。可以使用dch帮助程序脚本自动添加条目。