答案1
%files
当您拥有所需的变量时,可以从安装过程中创建的文件中读取文件名列表。例如
%install
echo /$MPI_BIN/somefile >>myfilelist
然后使用
%files -f myfilelist
答案2
该变量$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}
该构造%( )
将作为 shell 脚本运行内容,并将输出用作宏的值。