Yaml 将多个变量作为规范文件的参数传递到rpmbuild中 问题

Yaml 将多个变量作为规范文件的参数传递到rpmbuild中 问题,yaml,rpmbuild,Yaml,Rpmbuild,我的buildspec.yml中有两个env变量 env: variables: BUILD_VERSION: "0.0.1" BUILD_RELEASE: "1" 我想将它们传递到rpmbuild命令中,但我似乎无法获得正确的语法 我的尝试 我尝试过其他几种版本,但运气不佳。非常感谢您的帮助。您应该能够使用 rpmbuild --define '_version 0.0.1' 但是在这种情况下,您需要在spec文件中定义变量_version;比如: %{!?_vers

我的buildspec.yml中有两个env变量

env:
  variables:
    BUILD_VERSION: "0.0.1"
    BUILD_RELEASE: "1"
我想将它们传递到
rpmbuild
命令中,但我似乎无法获得正确的语法


我的尝试
我尝试过其他几种版本,但运气不佳。非常感谢您的帮助。

您应该能够使用

rpmbuild --define '_version 0.0.1'
但是在这种情况下,您需要在spec文件中定义变量_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

请注意,双引号很重要。

谢谢Chris。我试图为buildspec保留env中定义的变量。可能吗?我想在buildspec的顶部定义它们,这样它们就可以很容易地在新版本中更改。我不明白“buildspec”是什么意思。我没有找到一种直接从外部定义变量(如版本)的方法,这就是为什么我提出了这个解决方法…对,我想我在问题中解释了它。我的意思是不用rpmbuild--define'_version1.0.0',我将在buildspec.yml中定义env变量,并从那里调用buildrpm,同时将env变量作为_version和_build的定义传入.spec中。我熟悉在规范中定义它们,但我希望在buildrpm调用中使用env变量。我不知道在规范文件中使用环境变量。。。看看在规范文件中使用环境变量的情况:我认为我们在这里有一个误解。我会接受你的回答,然后再把问题贴得更清楚。谢谢你的意见!
rpmbuild --bb --define "_topdir ${rpmdir}" --define "PRODUCT_VERSION 1.0" --buildroot /home/devuser/buildTest/buildroot --target x86_64 ./SPECS/html5.spec