11

ビルドログに次のように表示されます。

Executing(%clean): /bin/sh -e /var/tmp/rpm-tmp.CgE2Qn
+ umask 022
+ cd /export/home/svn_checkouts/*snip*/Output/release/bin/packaging/BUILD
+ /bin/rm -rf /export/home/svn_checkouts/*snip*/Output/release/bin
+ exit 0

rpmbuildRPM のビルド後に他の目的で必要になるため、ビルド ディレクトリ内のすべてのファイルを削除することは避けたいと思います。この動作をオーバーライドできますか?

RPM の一部のバージョンでは--noclean引数がサポートされていると読みましたが、残念ながら私たちのバージョンではサポートされていません。

4

2 に答える 2

11

スペック ファイルに独自の%cleanディレクティブを指定し、それを空白のままにしてデフォルトをオーバーライドする必要があることがわかりました。どういうわけか、私はそれがうまくいくとは思っていませんでした。;)

定義により、%Clean%フェーズを条件付けして、 と同じ効果を--noclean達成できます。

%Clean
%if "%{noclean}" == ""
   rm -rf $RPM_BUILD_ROOT
%endif

rpmbuild --define 'noclean 1'クリーニングを無効にするために呼び出されます。

于 2012-12-11T23:39:06.733 に答える