将多个变量作为 spec 文件的参数传递到 rpmbuild

Pass multiple variables into rpmbuild as parameters for spec file

问题

我的 buildspec.yml

中有两个环境变量
env:
  variables:
    BUILD_VERSION: "0.0.1"
    BUILD_RELEASE: "1"

我想将它们传递到 rpmbuild 命令中,但我似乎无法获得正确的语法。


我的尝试

- rpmbuild --define "_topdir `pwd`" --define "_version '$BUILD_VERSION'" --define "_release '$BUILD_RELEASE'" -bb ./mydirectory/myspecfile.spec

我已经尝试了其他几个版本,但都没有成功。如果能提供帮助,我们将不胜感激。

你应该可以使用

rpmbuild --define '_version 0.0.1'

但在那种情况下,您需要在规范文件中定义变量 _version;类似于:

%{!?_version: %define _version 0.0.0 }
Version: %{_version}

我也遇到过这个问题,并且能够用这个语法解决

rpmbuild --bb --define "_topdir ${rpmdir}" --define "PRODUCT_VERSION 1.0" --buildroot /home/devuser/buildTest/buildroot --target x86_64 ./SPECS/html5.spec

注意双引号很重要。