BuildEnvVars
Переменные окружения сборки
При написании спека, вместо указания конкретных каталогов можно указывать их переменные.
Они представлены в таблице ниже.
| Заголовок | |||
|---|---|---|---|
| Переменная | Использование в спеке | Описание | Стандартное значение |
| RPM_SOURCE_DIR | $RPM_SOURCE_DIR | Эта переменная окружения получает свое значение из записи файла rpmrc sourcedir, который в свою очередь может получить часть своего значения из записи topdir. Это путь RPM будет добавлен к файлу, указанному в исходный тег. | /usr/src/RPM/SOURCES |
| RPM_BUILD_DIR | $RPM_BUILD_DIR | Каталог сборки RPM, куда будет распакована большая часть программного обеспечения и собрана | /usr/src/RPM/BUILD |
| RPM_BUILD_ROOT | $RPM_BUILD_ROOT | Эта переменная окружения используется для хранения «корня сборки», в которую "встраивается" вновь собранное установленное программное обеспечение. Если его значение было изменено, его можно посмотреть в $ cat /usr/lib/rpm/macros |
/usr/src/tmp/%name-buildroot |
Как использовать эти переменные в разделе %install
Т.к. в разделе %install уже используются свои переменные типа %buildroot, %datadir и пр. данные переменные будут вызывать конфликты.
Чтобы их использовать, их нужно экранировать.
Например, у нас в спеке:
Source1: icons.tar.gz Source2: mypalm.desktop
У нас раздел install:
%install
Мы хотим распаковать архив, указываем не просто %SOURCE1, а в фигурных скобках:
tar -xf %{SOURCE1}
Мы хотим расположить desktop-файл в applications, указываем не %SOURCE2, а тоже экранируем:
install -m 0755 %{SOURCE2} %buildroot%_datadir/applications/mypalm.desktop
Располагаем значки в нужном месте:
install -m 0644 %{RPM_BUILD_DIR}/icons/*/*.png %buildroot%_datadir/icons/hicolor/