gpt4 book ai didi

packaging - 如何为不同的环境使用相同的路径创建 RPM 子包?

转载 作者:行者123 更新时间:2023-12-01 02:31:50 24 4
gpt4 key购买 nike

我想使用 rpm 为不同的环境(live、testing、developer)构建子包,但对于相同的文件,所以有一个名为 name-config-live 的包,一个名为 name-config-testing,一个名为 name-config -developer 并在其中具有相同的路径,但每个路径都具有与其命名的环境相对应的配置。
举个例子

假设在所有环境中我都有一个名为/etc/name.conf 的文件,并且在测试时我希望它包含“1”、开发时“2”和实时“3”。是否可以在同一个规范中执行此操作,因为子包生成只发生在最后而不是按照我输入的顺序。 (希望不使用 %post -n )

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

最佳答案

我不认为有本地方式。我会做一个 %post就像你注意到的那样。

但是,我会这样做(类似于我为工作开发的仅限内部包所做的事情):

  • 三个单独的文件 /etc/name.conf-developer , /etc/name.conf-live
  • 让所有三个包都提供一个虚拟包,例如name-config
  • 有主包需要name-config
  • 这将使 rpm , yum , 或任何需要在同一事务中安装至少一个
  • 三个包都相互冲突
  • 拥有每个配置包的%post (可能还有 %verify )符号链接(symbolic link) /etc/name.conf到正确的配置
  • 这也有助于向用户展示正在发生的事情

  • 缺点:
  • 这有点骇人听闻
  • rpm --whatprovides /etc/name.conf会说它不属于任何包
  • 关于packaging - 如何为不同的环境使用相同的路径创建 RPM 子包?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12696131/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com