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



新手来构建deb包。我有一个构建脚本来为 Ubuntu 生成软件包。版本号在changelog中。我想自动化构建 deb 包的过程,而无需使用version文件接触changelog,该文件仅包含类似1.0.0的版本号。

如何传递版本号来解构命令?

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

我没有足够的代表来评论,但我可以想到 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
...

第二种方法取决于您编写"解构"脚本所使用的语言。 我假设您正在围绕dpkg-deb创建一个包装器? 本质上,您为--version选项编写一个函数,该函数期望文件的路径逐行打开并读取版本号,逗号分隔等。 在 Python 中,这可以通过argparse模块来实现(参见 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。

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

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

最新更新