W trakcie budowania pakietu RPM, muszę określić BuildRoot, a później zostanie użyty w% install, który invovles $ RPM_BUILD_ROOT. Zawsze uważam, że RPM_BUILD_ROOT jest fałszywą instalacją RPM do pakowania. Następnie, przy instalacji przy użyciu pakietu RPM, zainstaluje się w rzeczywistej lokalizacji. Na przykład:Co to jest RPM_BUILD_ROOT?
$RPM_BUILD_ROOT/usr/bin
myślałem że $ RPM_BUILD_ROOT jest tylko dla procesu pakowania, a pod pewnymi względami RPM można odróżnić $ RPM_BUILD_ROOT i rzeczywistą lokalizację instalacji, gdy użytkownik wykonuje „rpm -ivh pakiet.rpm” będzie be/usr/bin.
Jednak po przeczytaniu niektórych dokumentów sugeruje się, że RPM_BUILD_ROOT jest rzeczywistą lokalizacją, która zostanie zainstalowana, a RPM_BUILD_ROOT jest określona przez użytkownika z ustawieniem zmiennej środowiskowej $ RPM_BUILD_ROOT, aby umożliwić użytkownikom instalację w ich pożądanych lokalizacjach. W przeciwnym razie wartość $ RPM_BUILD_ROOT będzie równa zero i zostanie zainstalowana w domyślnej lokalizacji. W powyższym przypadku jest to/usr/bin. Tak więc RPM_BUILD_ROOT nie służy tylko do pakowania lub "fałszywej instalacji", ale jest sposobem na zdefiniowanie lokalizacji instalacji, podobnie jak w przypadku wybrania lokalizacji folderu w systemie Windows.
Nie wiem, czy moje myślenie jest poprawne, czy nie. Czy ktoś może to zweryfikować? Z góry dziękuję.
Tak, w end, $ RPM_BUILD_ROOT to tylko wartość używana w procesie budowania, a dla RPM do sfałszowania instalacji plików do katalogu głównego instalacji, więc może pobrać strukturę katalogów dla końcowych lokalizacji instalacji. Myślę, że moje wstępne zrozumienie podstawy instalacji jest poprawne. – Amumu
W jaki sposób przekazujemy niestandardowy katalog główny do 'make install'? – Jeroen
Polecam unikatowe $ RPM_BUILD_ROOT do obsługi równoległych kompilacji na tym samym hoście za pomocą czegoś podobnego: 'BuildRoot:% {_ tmppath} /% {name} -buildroot -% {version} -% {release}' – MarkHu