Fedora
如何在沒有環境變數的情況下管理規範中的 %files 部分
我正在使用
MPICH
. 二進製文件必須安裝在mpich 目錄中。此目錄取決於 mpich 版本(/usr/lib64/mpich-3.2/
或/usr/lib64/mpich/
)。對於該%install
部分,我使用變數進行管理,MPI_BIN
並MPI_LIB
通過宏進行設置。但這些變數在本%files
節中沒有展開。如何在該
%files
部分列出二進製文件?我讀過一篇舊文章,但解決方案不起作用。
%files
當您擁有所需的變數時,可以從安裝過程中創建的文件中讀取文件名列表。例如%install echo /$MPI_BIN/somefile >>myfilelist
然後使用
%files -f myfilelist
該變數
$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 腳本執行,輸出用作宏的值。