如何在RPM SPEC文件中设置可选配置文件?

时间:2015-02-27 17:33:04

标签: linux rpm rpm-spec

有没有办法可以将配置文件标记为可选,这样在调用验证时(rpm -v),它会忽略丢失的配置文件?


我有一个RPM包,我为我的应用程序提供了一个默认配置文件。我的应用程序不需要配置文件,但我希望将其包含在内以便于配置。如果文件已删除,则应用程序将按预期工作(具有一些内部默认值)。我面临的问题是,如果我删除配置文件,然后在我安装的RPM上运行验证,RPM表明软件包信誉不佳:

  

rpm -V test-rpm

(输出)

  

缺少c /etc/test/test.conf

最小化SPEC定义:

Version:    0.0.1
Name:       test-rpm

...

%install
install -m 644 $resource_directory/test.conf %{buildroot}/etc/test/test.conf

 ...

%files
%defattr(-,root,root)
%config(noreplace) /etc/test/test.conf

 ...

是否有一些我尚未找到的选项,或者我是否误解了有关RPM的内容?

1 个答案:

答案 0 :(得分:3)

这就是我相信的%config(missingok)

  

%config(missingok)表示该文件不需要存在于已安装的计算机上。 %config(missingok)经常用于/etc/rc.d/rc2.d/S55named等文件,其中符号链接的(非)存在是%post中配置的一部分,文件可能需要是删除此包时删除。无论是在安装还是卸载时都不需要存在此文件。