我是rpm创建的新手。我需要找到一种使用rpm在jenkins中安装/卸载/升级插件的方法。我可以使用rpm安装插件,但是在卸载时如何删除不属于该软件包的新文件/目录。 / p>
假设我的软件包仅在服务器上部署xyz.jpi文件,在服务器重启时创建xyz.jpi和xyz文件夹。在卸载时,我想删除两个创建的文件夹。
答案 0 :(得分:1)
您可以使用%ghost
部分中的%files
指令;这意味着"这个文件/文件夹还不存在,但是当它出现时它将是我的。"
%files
%ghost %dir /path/to/unexisting/xyz
如果该目录中存在文件;我不确定rpm会删除它们。在这种情况下,可能需要添加另一行(待测试!)
%ghost /path/to/unexisting/xyz/*
中的更多信息
答案 1 :(得分:0)
在%postun
部分中检查这是否是拥有此文件夹的软件包的最后一个实例。
例如:
在我们的案例中,所有产品(a,b,c)共同拥有/opt/xy
z,然后在卸载时最后一个a,b,c删除/opt/xyz
文件夹(如果不是rpm安装的) 。
我们正在通过rpm -qa | egrep 'b|c'
...进行检查。
如果没有任何内容,那么我们会rm -rf /opt/xyz