【问题标题】:Creating RPM file using rpmbuild, but wrong files being picked up使用 rpmbuild 创建 RPM 文件,但拾取了错误的文件
【发布时间】:2012-04-12 07:50:36
【问题描述】:

rpmbuild 位于 /xenv/OS/ia64/RH4.0AS_U4/x86_64/usr/bin/ 并且 brp-compress 位于 /xenv/OS/ia64/RH4.0AS_U4/x86_64/usr/lib/rpm/ ,但是当我运行时:

/xenv/OS/ia64/RH4.0AS_U4/x86_64/usr/bin/rpmbuild --define '_topdir /build_location' -bb -vv package.spec

它尝试使用位于不存在的地方的 brp-compress(和其他文件)而失败:

/var/tmp/rpm-tmp.93613: line 31: /usr/lib/rpm/brp-compress: No such file or directory

如何更正位置? (注:我是 RPM 新手)

【问题讨论】:

    标签: rpm rpmbuild


    【解决方案1】:

    运行rpm --showrc 将显示rpm 使用的完整配置。如果您在此搜索brp-compress,您会发现:

    -14: __os_install_post  
        %{_rpmconfigdir}/brp-compress 
        %{_rpmconfigdir}/brp-strip %{__strip} 
        %{_rpmconfigdir}/brp-strip-static-archive %{__strip} 
        %{_rpmconfigdir}/brp-strip-comment-note %{__strip} %{__objdump} 
    %{nil}
    

    所以它看起来像是在寻找%{_rpmconfigdir}。也许尝试明确定义该值,然后看看结果如何。

    根据您要执行的操作,也可以将 chroot 转换为 /xenv/OS/ia64/RH4.0AS_U4/x86_64/ 并运行操作,根本不需要调整配置。

    【讨论】:

    • 我的配置被硬编码为“/usr/lib/rpm/...”。但是,我找到了一个将其设置为正确值的宏文件。问题是,如何让 rpmbuild 使用我找到的宏文件。谢谢!
    • 你可以在你的$HOME目录下创建一个~/.rpmmacros文件;格式与/usr/lib/rpm/macros 匹配。
    • 要覆盖,我们可以将_rpmconfigdir 定义为某个路径,例如,- /xenv/i686/rpm/lib 同时将rpmbuild 命令作为.rpm 创建的一部分,如此链接Defining variable while rpm build 中所述跨度>
    猜你喜欢
    • 2021-02-04
    • 2019-03-29
    • 2015-08-25
    • 1970-01-01
    • 2016-11-06
    • 1970-01-01
    • 1970-01-01
    • 2018-01-24
    • 1970-01-01
    相关资源
    最近更新 更多