在構建RPM包的過程中,我必須指定BuildRoot,稍後將用於調用$ RPM_BUILD_ROOT的%install。我總是認爲$ RPM_BUILD_ROOT是RPM執行打包的假安裝。然後,在安裝時使用RPM軟件包,它將安裝到實際位置。例如:
$RPM_BUILD_ROOT/usr/bin
我以爲$ RPM_BUILD_ROOT僅用於包裝過程中,而且在某些方面RPM可以區分$ RPM_BUILD_ROOT,當用戶執行「轉-ivh package.rpm」將實際的安裝位置是/ usr/bin。
但最近在閱讀一些文檔時,建議$ RPM_BUILD_ROOT是將要安裝的實際位置,並且$ RPM_BUILD_ROOT由用戶通過設置環境變量$ RPM_BUILD_ROOT來指定,以便讓用戶安裝打包在他們的願望地點。否則,$ RPM_BUILD_ROOT將爲空,它將安裝到默認位置。在上述情況下,它是/ usr/bin。因此,$ RPM_BUILD_ROOT不僅適用於打包或「假安裝」過程,而且是用戶定義安裝位置的一種方式,類似於Windows中的選擇文件夾位置。
我不知道我的想法是否正確。有人可以驗證嗎?提前致謝。
所以,在最後,$ RPM_BUILD_ROOT只是一個用於構建過程的值,並且RPM假冒將文件安裝到構建根目錄,因此它可以獲取最終安裝位置的目錄結構。我認爲我對構建根的最初理解是正確的。 – Amumu
我們如何將自定義根目錄傳遞給'make install'? – Jeroen
推薦獨特的$ RPM_BUILD_ROOT來支持在同一個主機上的並行構建: 'BuildRoot:%{_ tmppath} /%{name} -buildroot - %{version} - %{release} – MarkHu