我创建了一个可以安装/升级/卸载软件包的spec文件。但是,在卸载时,它会卸载带有警告的软件包
warning: erase unlink of /var/hudson/master/plugins/publish-over-cifs/help/global/username.html failed: No such file or directory
warning: erase unlink of /var/hudson/master/plugins/publish-over-cifs/help/global/timeOut.html failed: No such file or directory
warning: erase unlink of /var/hudson/master/plugins/publish-over-cifs/help/global/remoteRootDir.html failed: No such file or directory
warning: erase unlink of /var/hudson/master/plugins/publish-over-cifs/help/global/port.html failed: No such file or directory
warning: erase unlink of /var/hudson/master/plugins/publish-over-cifs/help/global/password.html failed: No such file or directory
如何解决此错误?有没有办法在spec文件中忽略这样的警告?
答案 0 :(得分:0)
这是我必须解决警告消息的解决方法。它是由放置在rm -rf
[卸载前]部分中的%preun
引起的。您不需要在SPEC文件中包含任何rm -rf
。 RPM将隐式地并递归地删除安装目录中每个目录的内容。因此,如果您真的想继续清理卸载后留下的空目录,请在rm -rf <installdir>
部分下添加%postun
。这将处理警告,并将导致卸载后删除安装目录的干净卸载。查看此文章http://meinit.nl/rpm-spec-prepostpreunpostun-argument-values - 介绍4个有用的标记:%pre %preun %post %postun
答案 1 :(得分:-1)
您的RPM包会尝试删除它已放置的文件和文件夹(隐式行为)。现在,您将收到以下消息:
%preun
部分(暂时没有rm -rf
?)请注意,我实际上是指文件夹,即您的/var/hudson/master/plugins/publish-over-cifs/help/global
。如果目标文件丢失,您将不会收到这些警告。换句话说,尝试在SPEC文件中替换rm -rf <path>
rm -rf <path>/*
,如果您要删除它的话。