как управлять разделом %files в спецификации без переменных окружения

sed 's/\(.*\)/-o \1:1/' file.txt | xargs /path/to/command

Замена sedчитается как :заменить текст в данной строке на "-o исходный _текст _:1". Затем команда xargsберет эти измененные строки текста и объединяет их в соответствии с аргументами командной строки

0
08.01.2021, 12:22
2 ответа

%files может прочитать список имен файлов из файла, созданного в процессе установки, если у вас есть нужные вам переменные. Например

%install
echo /$MPI_BIN/somefile >>myfilelist

, а затем используйте

%files -f myfilelist
1
18.03.2021, 22:37

Переменная $MPI_LIBимеет область действия только в секции %install. Вы можете попробовать макросы:

%install
MPI_LIB=some_value
%global mpi_lib $MPI_LIB

%files
/usr/lib64/%{mpi_lib}

Но это не удается, потому что определение макросов оценивается в самом начале анализа файла спецификации.Поэтому еще до запуска раздела %install.

Я бы использовал это:

%global mpi_lib %(echo -n "mpich3")

%files
/usr/lib64/%{mpi_lib}

Конструкция %( )запустит содержимое как сценарий оболочки, а выходные данные будут использоваться в качестве значения макроса.

0
18.03.2021, 22:37

Теги

Похожие вопросы