从命令行调用时覆盖rpmbuild构建位置

时间:2015-06-29 19:41:40

标签: jenkins command-line-interface packages rpm

我正在制作一些由Jenkins构建的配置包,然后在需要时检出。包本身已经构建并运行良好。我现在的问题是rpmbuild用于实际构建项目的目录。当我从我的工作目录调用rpmbuild SPECS / package.spec时,rpmbuild在/home/user/rpmbuild创建一个新目录。当我运行测试时,这很好,但我宁愿我能够从Jenkins进程调用的任何文件构建。

我看到在线人员说要制作一个~/.rpmmacros文件来覆盖$_topdir变量。这种方法并不适用于Jenkins构建。有没有办法简单地调用rpmbuild并在当前目录中构建?结构就在那里,它会更好地满足我的目标。感谢。

1 个答案:

答案 0 :(得分:2)

是的,只需直接覆盖_topdir

rpmbuild -D '_topdir /new/value/for/_topdir'

rpmbuild --define='_topdir /new/value/for/_topdir'

那些应该是相同的,但我已经知道它们并不总是出于某种原因(并且在快速测试中rpm -D '_topdir /opt/tnstmp' --showrc | grep _topdir没有显示修改后的值,但rpm --define '_topdir /opt/tnstmp' --showrc | grep _topdir没有。