Intereting Posts
Ошибка xsession: невозможно войти в систему после изменения переменной среды Локальные диски, обнаруженные как многолучевое устройство Ошибка операции ping6 " Можно ли запустить ssh-copy-id на другом порту, кроме 22? Поиск последнего символа файла и добавление строки после этого? Самый простой способ отправить почту с вложением изображения из командной строки с помощью gmail? Как удалить файл файловой системы NTFS, чье имя содержит «:»? Восстановить из ярлыка корзины? Fedora 20 замерзает при перезагрузке и отключении питания Как найти и распечатать аргументы команды в ps? gVim открытие вкладки выводит строку состояния из окна .bash_profile не используется при запуске su Получение «Невозможно устранить проблемы, у вас были сломанные пакеты». После попытки установки python -setuptools и python-pip как получить статистику полученных пакетов на определенном порту udp Должен ли я стереть предыдущий Linux на загрузочном live usb, когда я хочу создать другой?

Атрибут SPEC% files и переменные Shell

У меня есть файл спецификации, который распаковывает библиотеку, которая развернута в местоположении, которое экспортируется в оболочку.

т.е.

%file ${AXIS2_C}/bin/services/services.xml 

Это не удается:

 error: File not found: root/rpmbuild/BUILDROOT/i386/${AXIS2_C}/bin/services/services.xml 

Т.е. переменная оболочки не расширяется. Есть ли способ обойти это?

Благодаря!

К сожалению, все, что определено в оболочке, запущенной секциями% prep,% build или%, не сохраняется в среде сборки. Вам нужно будет определить% {AXIS2_C}, переменную MACRO (не переменную оболочки):

 %define AXIS2_C /usr/local/something 

а затем обратитесь к нему в обеих

 make whatever FOO=%{AXIS2_C} # or however you used the env variable 

а затем в разделе% files, используйте

 %file %{AXIS2_C}/bin/services/services.xml 

Обычно начальный% define находится в верхней части спецификационного файла, с некоторой документацией о том, для чего он предназначен. Если вам нужно динамически установить макрос, вам придется использовать более сложные макросы макросов спецификации RPM, такие как% (), для выполнения расширений оболочки.

Что произойдет, если вы не включите его в { } , и используйте только " "

 %file "$AXIS2_C"/bin/services/services.xml 

(или даже без " " вообще»)