シェルにエクスポートされた場所にデプロイされているライブラリを解凍するスペックファイルがあります。
すなわち
%file
${AXIS2_C}/bin/services/services.xml
これは次のように失敗します:
error: File not found: root/rpmbuild/BUILDROOT/i386/${AXIS2_C}/bin/services/services.xml
つまり、Shell変数は展開されません。これを回避する方法はありますか?
ありがとう!
残念ながら、%prep、%build、または%installセクションによって開始されたシェルで定義されたものは、ビルド環境に保存されません。 %{AXIS2_C}、[〜#〜] macro [〜#〜]変数(シェル変数ではない)を定義する必要があります。
%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仕様のマクロコマンドを使用してシェル拡張を行う必要があります。
{ }
で囲んでおらず、" "
のみを使用するとどうなりますか
%file
"$AXIS2_C"/bin/services/services.xml
(または" "
がまったくない場合でも)