rpm一時ファイルの問題(rpm-tmp)

rpm一時ファイルの問題(rpm-tmp)

CentOSにRPMをインストールすると、次のエラーメッセージが表示されます。

/var/tmp/rpm-tmp.44492: line 578: [: too many arguments

私が経験している問題は、/var/tmp/rpm-tmp.xxxxxRPMのインストール後にこのファイルが常に削除されることです。問題のある行番号を確認したいと思います。 rpmの問題を簡単にデバッグできるようにインストールするときにこのファイルを保存する最善の方法は何ですか?これまで私は%preこれをrpm仕様ファイルのセクションに入れてこの問題を処理しました。

cp -vf /var/tmp/rpm-tmp* /tmp/%module_name-rpm-tmp-copy

/var/tmp/rpm-tmp*にコピーすることで/tmp578行を見ることができ、コードの構文エラーを簡単に修正できました。rpm-tmpインストール中にRPMが使用するファイルを参照する方法はありますか?包括的な(コピーされたファイル)宣言の代わりにenv正しいコンテンツをコピーするために仕様ファイルでこれらのいくつかを使用できますか?rpm-tmpcp/var/tmp/rpm-tmp*

答え1

今日、SLES 11SP4(RPMバージョン4.4.2.3)でもこの問題が発生しました。タグ--noclean書き換え%clean提案ソリューションもスクリプトの削除を妨げませんでした/var/tmp/rpm-tmp.*

exit -1デバッグ中の手順の最後にきれいな追加項目を追加することで、この問題を解決できました。 rpmbuilder は次のように終了します。

error: Bad exit status from /var/tmp/rpm-tmp.00000 (%install)

そして、ファイルをまだデバッグする必要があります。

答え2

2つのオプションがありますrpmbuild

1.--ノクリン

rpmbuildこのスイッチを使用して、パッケージをインストールするときにこれらのファイルを削除しないように指示できます。--rebuild

$ rpmbuild --rebuild --noclean ....

メモ:私がアクセスできるほとんどのバージョンはこの機能を提供します。

$ rpmbuild --help |& grep clean
      --clean                    remove build tree when done
      --noclean                  do not execute %clean stage of the build
Fedora 20
$ rpmbuild --version
RPM version 4.11.2
セントOS 5.x
$ rpmbuild --version
RPM version 4.4.2.3

2. rpmbuild は --noclean をサポートしません。

rpmbuild --rebuild独自のファイルを使用してパッケージをビルドする場合.spec。このオプションはサポートされていません。%cleanこの.specファイルのステージに独自のルーチンを追加できます。

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

引用する

関連情報