次のコマンドを使用してソフトウェア用のパッケージを作成していますMPICH
。バイナリは次の場所にインストールする必要があります。mpichディレクトリ。このディレクトリはmpichのバージョンによって/usr/lib64/mpich-3.2/
異なります/usr/lib64/mpich/
。このセクションでは、%install
変数MPI_BIN
とマクロの設定でMPI_LIB
管理しました。ただし、これらの変数はこのセクションでは拡張されません%files
。
バイナリセクション%files
にバイナリをどのようにリストできますか?私は記事を読んだ古い投稿しかし、解決策は機能しません。
答え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}
この構成では、%( )
コンテンツをシェルスクリプトとして実行し、出力をマクロ値として使用します。