-1

全て、

rpm.spec ファイルを使用して RPM パッケージを作成しました。パッケージは正常にインストールされました。rpm -e を使用してパッケージを削除すると、RPM データベースから削除されました

ただし、pkg が作成したディレクトリ構造は削除されませんでした。

この問題を解決するのを手伝ってください。

4

1 に答える 1

3

スペック ファイルにはいくつかの問題があります。

  • あなたの%filesセクションは空です、あなたのRPMにはファイルがまったく含まれていません(試してみてくださいrpm -ql packagename);
  • すべての作業は%preandで行い%postます。
  • あなた%postは複雑すぎます。

RPM にはファイルがまったくないため、アンインストールしても何も削除されません。これは論理的です。他の問題に関して%postは、スクリプトが RPM によって提供されるファイルであり、クリーンアップ用に別のスクリプトが提供されている場合は、はるかに優れています。次に、pre、post、preun、postun セクションは次のようになります。

#no %pre

%post
/path/to/install.sh

%preun
# Only if package completely removed!
[ "$1" = "0" ] && /path/to/cleanup.sh

#no %postun

しかし、ここで行うことを考えると、Puppet などのツールを使用した方がよいでしょう。

于 2011-12-21T16:14:30.527 に答える