新手打造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
答案 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帮助程序脚本自动添加条目。