本文介绍了当从Tcl调用rpmbuild时,为什么topdir设置为默认值?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个‘exec’rpmbuild的Tcl脚本。这样做时,rpmbuild使用的‘topdir’是错误的。我的主目录中有一个.rpm宏文件,如果我手动调用rpmbuild,它会工作得很好,即。"topdir"不是默认的。

我在Tcl脚本中添加了[exec rpmbuild"--showrc"]来检查topdir的值,它显示‘-14:_topdir%{_usrsrc}/redhat’,这是默认值。

有人能给我解释一下为什么会出现这种情况吗?如何解决?

我不希望使用--DEFINE指定它,因为它实际上是在Makefile中完成的,我不想触摸它(如果没有其他选择,我会这样做)。

推荐答案

更改默认rpmbuild顶层目录有两种方法:

  1. 每用户:通过在$HOME/.rpm宏中配置RPM topdir

    %_topdir    %{getenv:HOME}/rpmbuild
    
  2. 每个项目:通过在Makefile或命令行中配置RPM topdir

    rpmbuild --define '_topdir build' -ba package.spec
    

注意:在这两种情况下,您都需要确保topdir目录具有适当的目录(build、SRPM、RPM、spes和source)

这篇关于当从Tcl调用rpmbuild时,为什么topdir设置为默认值?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

05-17 08:32