Nel processo di creazione di un pacchetto RPM, devo specificare BuildRoot e in seguito verrà utilizzato in% install che esegue l'esplorazione di $ RPM_BUILD_ROOT. Penso sempre che $ RPM_BUILD_ROOT sia la falsa installazione di RPM per eseguire il packaging. Quindi, al momento dell'installazione utilizzando il pacchetto RPM, verrà installato nella posizione effettiva. Per esempio:
$RPM_BUILD_ROOT/usr/bin
ho pensato che $ RPM_BUILD_ROOT è per il processo di confezionamento unico, e per certi versi RPM può distinguere il $ RPM_BUILD_ROOT e l'effettivo percorso di installazione quando l'utente esegue "rpm -ivh pacchetto.rpm" volontà essere/usr/bin.
Ma recentemente, leggendo alcuni documenti, è suggerito che $ RPM_BUILD_ROOT è la posizione effettiva che verrà installata e $ RPM_BUILD_ROOT è specificato dall'utente con l'impostazione della variabile di ambiente $ RPM_BUILD_ROOT per consentire agli utenti di installare il pacchetto nelle loro posizioni di desiderio. In caso contrario, $ RPM_BUILD_ROOT sarà nullo e verrà installato nella posizione predefinita. Nel caso precedente, è/usr/bin. Pertanto, $ RPM_BUILD_ROOT non è solo per il processo di packaging o "installazione falsa", ma è un modo in cui l'utente può definire il percorso di installazione, in modo simile alla posizione della cartella selezionata in Windows.
Non so che il mio modo di pensare sia corretto o meno. Qualcuno può verificare? Grazie in anticipo.
Così, nel end, $ RPM_BUILD_RooT è solo un valore utilizzato per il processo di costruzione e affinché l'RPM falso installa i file nella build root, in modo che possa ottenere la struttura di directory per le ubicazioni di installazione finali. Penso che la mia comprensione iniziale della build root sia corretta. – Amumu
Come passiamo una dir radice personalizzata a 'make install'? – Jeroen
Consiglia univoco $ RPM_BUILD_ROOT per supportare le build parallele sullo stesso host utilizzando qualcosa come: 'BuildRoot:% {_ tmppath} /% {name} -buildroot -% {version} -% {release}' – MarkHu