В процессе создания пакета RPM я должен указать BuildRoot, а позже будет использоваться в% install, который вызывает $ RPM_BUILD_ROOT. Я всегда думаю, что $ RPM_BUILD_ROOT - это поддельная установка для RPM для упаковки. Затем, во время установки с использованием пакета RPM, он будет установлен в фактическое местоположение. Например:
$RPM_BUILD_ROOT/usr/bin
Я думал, что $ RPM_BUILD_ROOT только для процесса упаковки, а в некоторых отношениях RPM можно выделить $ RPM_BUILD_ROOT и фактическое место установки, когда пользователь выполняет «оборотов в минуту -ivh package.rpm» будет be/usr/bin.
Но в последнее время при чтении некоторых документов предполагается, что $ RPM_BUILD_ROOT - это фактическое место, которое будет установлено, и $ RPM_BUILD_ROOT задается пользователем с настройкой переменной среды $ RPM_BUILD_ROOT, чтобы пользователи могли установить пакет в местах их желания. В противном случае $ RPM_BUILD_ROOT будет null, и он будет установлен в местоположение по умолчанию. В приведенном выше случае это/usr/bin. Таким образом, $ RPM_BUILD_ROOT предназначен не только для процесса упаковки или «поддельной установки», но и для пользователя, чтобы определить местоположение установки, аналогично выбору местоположения папки в Windows.
Я не знаю, что мое мышление верное или нет. Может кто-нибудь, пожалуйста, подтвердите? Заранее спасибо.
Таким образом, в end, $ RPM_BUILD_RooT - это просто значение, используемое для процесса построения, и для RPM для подделки установить файлы в корневой каталог сборки, чтобы он мог получить структуру каталогов для конечных мест установки. Я думаю, что мое первоначальное понимание корня сборки правильное. – Amumu
Как мы можем передать настраиваемый корневой каталог для 'make install'? – Jeroen
Рекомендовать уникальный $ RPM_BUILD_ROOT для поддержки параллельных сборок на одном хосте, используя примерно следующее: 'BuildRoot:% {_ tmppath} /% {name} -buildroot -% {version} -% {release}' – MarkHu