Я некоторое время боролся с этим. Итак, я написал файл .specs для своего проекта, и все прошло нормально. RPM собран, установка прошла гладко... но потом у меня возникли проблемы, потому что теперь мне нужно использовать пользовательскую глобальную переменную среды, чтобы задать путь установки.
Это даст раздел %files как таковой:
%files
%defattr(-,root,root)
$INSTALLPATH/Crystal/bin/Crystal.jar
Где Crystal — это имя моего проекта, а INSTALLPATH определяется в env благодаря командной строке экспорта. Затем при запуске buildrpm -ba Crystal.specs у меня возникает следующая ошибка:
error: File must begin with "/" : $INSTALLPATH/Crystal/bin/Crystal.jar
Я попытался определить макрос внутри файла .rpmmacros как таковой: %_installpath $INSTALLPATH
И в моем файле спецификаций, когда я делаю echo %{_installpath}, я получаю значение, которое я установил в .rpmmacros. Но если я использую его в %files:
%files
%defattr(-,root,root)
%{_installpath}/Crystal/bin/Crystal.jar
Я снова получаю ту же ошибку!
error: File must begin with "/" : $INSTALLPATH/Crystal/bin/Crystal.jar
Я также попытался определить переменную в файле спецификаций, и у меня такой же печальный результат. Похоже, пока моя переменная/макрос ссылается на $INSTALL, %files не примет его. Но я должен использовать эту переменную env!
Так что это все, о чем я мог думать. Кто-нибудь понял? Любая помощь будет принята с благодарностью.
Заранее большое спасибо!