如何在fpm中以非交互方式将文件标记为config(missingok) ?



我一直在尝试使用fpm创建rpm,但遇到了一个问题。在我安装了这个包之后,有些我不再需要的文件会在安装后的脚本中删除,以节省空间。不幸的是,当软件包被卸载时,它会抱怨文件不存在,因为它们仍然被rpm注册为软件包的一部分。当我研究如何通过rpm解决这个问题时,我偶然发现了%config(missingok)宏,它看起来很理想。但是,似乎没有办法通过fpm来设置。

对于可能的解决方案,我当前的选项是通过设置fpm_editor变量将-edit标志从使用vi编辑规范文件更改为使用脚本,或者在预删除脚本中触摸文件,以尝试欺骗rpm认为这些有问题的文件仍然存在。这两个选项都不太吸引人。

所以我的问题是:有没有一种方法可以使用fpm来a:从"视线"中删除包;安装后的RPM,或者b:通过fpm将文件标记为noconfig(missingok) ?当然不需要使用以上两种解决方案。

通常的方法是在%install部分结束时rm -f这些文件,而不是在post-installscriptlet中这样做。这样无用的文件就不会被打包到最后的rpm中。

我从未将一个rpm与fpm打包,但是查看源代码,我看到命令行开关--exclude--exclude-file应该是您正在寻找的:

option ["-x", "--exclude"], "EXCLUDE_PATTERN",
"Exclude paths matching pattern (shell wildcard globs valid here). " 
"If you have multiple file patterns to exclude, specify this flag " 
"multiple times.", :attribute_name => :excludes do |val|
excludes << val
next excludes
end # -x / --exclude
option "--exclude-file", "EXCLUDE_PATH",
"The path to a file containing a newline-sparated list of "
"patterns to exclude from input."

最新更新