我到處都看到在互聯網上,爲的rpmbuild的默認位置是用戶的主目錄,~/rpmbuild
。如果我希望在另一個文件夾位置構建它,例如~/foo/bar/rpmbuild
,該怎麼辦?RPM構建是否總是採用〜/ rpmbuild中的文件?
這是爲什麼?如果我的構建位置是別的,它會有什麼不同?
編輯:這意味着即使是~/rpmmacros
文件可以在任何地方。
我到處都看到在互聯網上,爲的rpmbuild的默認位置是用戶的主目錄,~/rpmbuild
。如果我希望在另一個文件夾位置構建它,例如~/foo/bar/rpmbuild
,該怎麼辦?RPM構建是否總是採用〜/ rpmbuild中的文件?
這是爲什麼?如果我的構建位置是別的,它會有什麼不同?
編輯:這意味着即使是~/rpmmacros
文件可以在任何地方。
您可以創建RPM。例如,
rpmbuild --define '_topdir $(RPMBUILD_DIR)' \
--define 'version $(VERSION)' \
--define 'release $(RELEASE)' \
-bb $(PKGNAME).spec
是我的Makefile爲RPM項目,指定版本建立在$ {} RPMBUILD_DIR我的RPM並從變量釋放號碼。我使用了很多,這樣我就可以擁有多個不會相互衝突的構建項目,這些項目都是在同一個目錄中構建的。
可以設置.rpmmacros
配置文件中像這樣的%_topdir
變量(在你的主目錄):
echo "%_topdir ~/foo/bar/rpmbuild" >> ~/.rpmmacros
它不會(也不應該)真的太大的差別;因爲來源將由rpmbuild
在那裏複製;那麼他們是建立和安裝和包裝...因爲所有的路徑都應該是相對的,結果應該是相同的。
PS:有關rpm build area的更多信息 PPS:很久以前,默認build area
位於/ usr/src/packages;但你有權限問題等,而無需修改或通過在的rpmbuild命令行指定_topdir保持.rpmmacros文件
對不起,我之前並不清楚。請參考我在問題下的評論。 –
rpm --macros/colon:/ separated:路徑是重新定位讀取宏文件的一種方法。還有一種古老的方式可以覆蓋rpmrc文件中的宏路徑,該文件仍然可以用rpm.org代碼運行(rpm5.org大多放棄rpmrc文件作爲配置手段太複雜)。 –
請參閱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中指定的文件夾。 –
我明白了。我想我的意思是,即使將〜/ .rpmmacros文件移動到另一個位置,然後讓rpmbuild從中選擇它?沒有辦法嗎?還是說這個配置不重要? –