2012-03-28 54 views
2

rpmbuild位於/xenv/OS/ia64/RH4.0AS_U4/x86_64/usr/bin/,brp-compress位於/ xenv/OS/ia64/RH4.0AS_U4/x86_64的在/ usr/lib/rpm的/,但是當我運行:使用rpmbuild創建RPM文件,但拾取錯誤的文件

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

,因爲它試圖利用設在它們不存在的地方BRP-壓縮(和其他文件)未:

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

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

回答

2

正在運行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/,只是運行的東西,根本不需要調整配置。

+0

我的配置硬編碼爲「/ usr/lib/rpm/...」。但是,我找到了一個將其設置爲正確值的宏文件。問題是,如何讓rpmbuild使用我找到的宏文件。謝謝! – Ben 2012-03-28 17:47:38

+0

你可以在你的'$ HOME'目錄下創建'〜/ .rpmmacros'文件;該格式匹配'/ usr/lib/rpm/macros'的格式。 – larsks 2012-03-28 17:55:30

+0

爲了覆蓋,我們可以在傳遞'rpmbuild'命令作爲'.rpm'創建的一部分時,將'_rpmconfigdir'定義爲某個路徑,比如說''/ xenv/i686/rpm/lib',如本鏈接所述[定義變量while rpm build](https://stackoverflow.com/questions/21559477/how-to-pass-user-defined-parameters-to-rpmbuild-to-fill-variables) – 2018-01-23 20:04:46