全部,
我使用 rpm.spec 文件创建了一个 RPM 包。包安装成功。当我使用 rpm -e 删除软件包时,它从 RPM 数据库中删除
但是 pkg 创建的目录结构没有被删除。
请帮我解决这个问题。
您的规范文件有几个问题:
%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 之类的工具。