2016-07-04 62 views
0

我到處都看到在互聯網上,爲的rpmbuild的默認位置是用戶的主目錄,~/rpmbuild。如果我希望在另一個文件夾位置構建它,例如~/foo/bar/rpmbuild,該怎麼辦?RPM構建是否總是採用〜/ rpmbuild中的文件?

這是爲什麼?如果我的構建位置是別的,它會有什麼不同?

編輯:這意味着即使是~/rpmmacros文件可以在任何地方。

+0

請參閱http://www.linuxquestions.org/questions/linux-software-2/need-rpm-package-for-php-version-5-2-7-and-up-on-redhat-5 -1-a-766486 /#13 ...進行設置。您可以將這些位置更改爲您的首選位置。你可以在任何文件夾中使用$'rpmbuild -bb file.spec'。這些包將被創建到.rpmmacros中指定的文件夾。 –

+0

我明白了。我想我的意思是,即使將〜/ .rpmmacros文件移動到另一個位置,然後讓rpmbuild從中選擇它?沒有辦法嗎?還是說這個配置不重要? –

回答

2

您可以創建RPM。例如,

rpmbuild --define '_topdir $(RPMBUILD_DIR)' \ 
    --define 'version $(VERSION)' \ 
    --define 'release $(RELEASE)' \ 
    -bb $(PKGNAME).spec 

是我的Makefile爲RPM項目,指定版本建立在$ {} RPMBUILD_DIR我的RPM並從變量釋放號碼。我使用了很多,這樣我就可以擁有多個不會相互衝突的構建項目,這些項目都是在同一個目錄中構建的。

1

可以設置.rpmmacros配置文件中像這樣的%_topdir變量(在你的主目錄):

echo "%_topdir ~/foo/bar/rpmbuild" >> ~/.rpmmacros 

它不會(也不應該)真的太大的差別;因爲來源將由rpmbuild在那裏複製;那麼他們是建立和安裝和包裝...因爲所有的路徑都應該是相對的,結果應該是相同的。

PS:有關rpm build area的更多信息 PPS:很久以前,默認build area位於/ usr/src/packages;但你有權限問題等,而無需修改或通過在的rpmbuild命令行指定_topdir保持.rpmmacros文件

+0

對不起,我之前並不清楚。請參考我在問題下的評論。 –

+0

rpm --macros/colon:/ separated:路徑是重新定位讀取宏文件的一種方法。還有一種古老的方式可以覆蓋rpmrc文件中的宏路徑,該文件仍然可以用rpm.org代碼運行(rpm5.org大多放棄rpmrc文件作爲配置手段太複雜)。 –