RPM spec file-возможно ли динамически заполнять переменную spec file
у меня есть файл спецификации. Мне нужно %определить переменную spec, которая получает свое значение из файла одной строки в системе.
%define path `cat /home/user/path_file`
и в path_file есть одна строка
/var/www/html/hosts
это частично работает. Я говорю, что начинается в выходе сборки RPM иногда значение ${path}
буквально моя команда cat /home/user/path_file
и иногда значение является строкой в path_file (/var/www/html/hosts), как и должно быть?
1 ответов
вы можете определить переменные rpmbuild с %(cmd)
в верхней части файла спецификации. Обратите внимание, что команда находится в скобках, а не в фигурных скобках. Пример:
%define whoami %(whoami)
и в других местах файла спецификаций, таких как скрипт или разделы сборки/установки, используйте переменную как обычно в фигурных скобках, например:
echo "The user that built this is %{whoami}"
на cmd
может быть что угодно, включая вашу команду cat. Будьте осторожны - когда другой пользователь перестраивает файл спецификации, он может не найти файл. Так это предпочтительнее использовать макрос %{sourcedir} следующим образом:
%define path %(cat %{sourcedir}/path_file)
и убедитесь, что path_file
находится в исходном каталоге и включен в качестве источника в файл спецификации.