Rpmlint "use-tmp-in-%postun"エラー

Rpmlint "use-tmp-in-%postun"エラー

rpmlint出力:

E: use-tmp-in-%postun

仕様ファイル:

%postun
rm -r /var/aci /tmp/aci_tmp 2> /dev/null

また、パッケージを削除することもできません。

このパッケージを削除した後または削除する前に、/ tmpからディレクトリをどのように削除できますか?

答え1

可能であれば、常に%postスクリプトを避けてください%postun。君はそれができるアーチファイルまたはフォルダはパッケージに属します。

たとえば、フォルダ/var/aciでファイル/tmp/aci_tmpだとしましょう。その後、次のことができます。

%install
mkdir -p $PPM_BUILD_ROOT/var/aci

%files
/var/aci
%ghost /var/aci/* # not sure this is necessary...
%ghost /tmp/aci_tmp

この%ghostガイドラインの意味は次のとおりです。このファイル/フォルダが表示されたら、それは私のものです。これは、パッケージを削除すると削除されるという意味でもあります。

答え2

/tmpこれは通常tmpfsとしてマウントされるためです。パッケージに何かを入れると、再起動時に消去されます。

エラーを無視しているので、あなたの場合は大丈夫でしょう。

tmpfiles.d(5) を使用することをお勧めします。つまり、ファイルを作成/etc/tmpfiles.d/aci.conf

次の行の一部(ファイルまたはディレクトリを作成するかどうかわからない):

   #Type Path                                     Mode User Group Age         Argument
   f     /file/to/create                          mode user group -           content
   F     /file/to/create-or-truncate              mode user group -           content
   w     /file/to/write-to                        -    -    -     -           content
   d     /directory/to/create-and-cleanup         mode user group cleanup-age -
   D     /directory/to/create-and-remove          mode user group cleanup-age -

関連情報