如何创建使用不同ENVS相同的路径RPM子包?(How to create RPM subpacka

2019-09-23 09:09发布

我想用一个rpm构建针对不同的环境(生活,测试,开发者),但相同的文件子包,所以有个名字叫 - 配置-Live软件包,一个名为名称的配置,测试和一个叫名字,配置-developer和他们有相同的路径,但每一个对应于它的得名环境CONFIGS。 举个例子

让我们上我有一个名为/etc/name.conf文件中的所有环境说和测试中,我希望它包含“1”,在发展“2”,并在现场“3”。 是否有可能做到这一点在同规格,因为分包代仅发生持续不我进入它的顺序。 (希望不会%后-n)

我尝试使用buildroot的,但似乎这是一个全局属性

Answer 1:

我不认为有原生的方式; 我会做一个%post像你已经注意到。

不过,我会做到这一点(类似的东西我用我开发工作仅供内部使用的包装做的):

  1. 三个单独的文件/etc/name.conf-developer/etc/name.conf-live等。
  2. 有三个程序包提供了一个虚拟包,如name-config
  3. 有主包需要name-config
    • 这将使rpmyum ,或任何需要至少一个被安装在同一个事务
  4. 有三个程序包互相冲突
  5. 让每个配置包的%post (也可能是%verify )的符号链接/etc/name.conf到适当配置
    • 这也有助于表明发生了什么用户

缺点:

  1. 这是一个小的hackish
  2. rpm --whatprovides /etc/name.conf会说,这是没有任何包装资


文章来源: How to create RPM subpackages using the same paths for different envs?