我有一个'exec'rpmbuild的tcl脚本。这样做时,rpmbuild使用的“topdir”是错误的。我的主目录中有一个.rpmmacros文件,如果我手动调用rpmbuild,它可以正常工作,即。 “topdir”不是默认值。

我在tcl脚本中添加了[exec rpmbuild“--showrc”]来检查topdir的值,它说'-14:_topdir%{_ usrsrc} / redhat'是默认值。

有人可以向我解释这种情况的原因以及如何解决吗?

我宁愿不必使用--define指定它,因为它实际上是在makefile中完成的,并且我不想触碰它(如果没有其他选择,我会这样做)。

最佳答案

有两种方法可以更改默认的rpmbuild topdir:

  • 每用户:通过在$ HOME / .rpmmacros中配置RPM topdir
    %_topdir    %{getenv:HOME}/rpmbuild
    
  • 每个项目:通过在Makefile或命令行中配置RPM topdir
    rpmbuild --define '_topdir build' -ba package.spec
    

  • 注意:在两种情况下,您都需要确保您的topdir目录具有适当的目录(BUILD,SRPM,RPM,SPECS和SOURCES)

    关于tcl - 当从tcl调用rpmbuild时,为什么将topdir设置为其默认值?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/416983/

    10-16 20:39