シェルからエクスポートされた場所にデプロイされたライブラリーを解凍する仕様ファイルがあります。
つまり
%file
${AXIS2_C}/bin/services/services.xml
失敗します。
error: File not found: root/rpmbuild/BUILDROOT/i386/${AXIS2_C}/bin/services/services.xml
つまり、シェル変数は拡張されません。この問題を解決する方法はありますか?
ありがとうございます!
答え1
残念ながら、%prep、%build、または%installによって部分的に開始されたシェルで定義されているすべてのエントリは、ビルド環境では維持されません。 %{AXIS2_C} を定義する必要があります。マクロ変数(シェル変数ではありません):
%define AXIS2_C /usr/local/something
次に、両方のシェルで次のように参照してください。
make whatever FOO=%{AXIS2_C} # or however you used the env variable
次に、%filesセクションで次を使用します。
%file
%{AXIS2_C}/bin/services/services.xml
通常、初期%defineはその目的に関するいくつかの文書と共に仕様ファイルの一番上にあります。マクロを動的に設定する必要がある場合は、シェル拡張に%()などのより複雑なRPM仕様マクロコマンドを使用する必要があります。
答え2
カプセル化せずにただ使用すると{ }
どうなりますか?" "
%file
"$AXIS2_C"/bin/services/services.xml
(あるいは" "
まったくない)