-1

全部,

我使用 rpm.spec 文件创建了一个 RPM 包。包安装成功。当我使用 rpm -e 删除软件包时,它从 RPM 数据库中删除

但是 pkg 创建的目录结构没有被删除。

请帮我解决这个问题。

4

1 回答 1

3

您的规范文件有几个问题:

  • 您的%files部分是空的,您的 RPM 根本不包含任何文件(尝试和rpm -ql packagename);
  • 您在%pre和中完成所有工作%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 回答