强制冲突的虚拟包

时间:2010-03-08 16:56:06

标签: rpm

喂!我有一个通用包需要一个配置文件和多个可以提供所述配置文件的包。

所以,为了定义“myserver”,我得到了:

myserver.spec

需要:myserver-config


(配置包) MYSERVER先config.spec

名称:myserver-first-config

需要:myserver

提供:myserver-config


(另一个配置包)myserver-second-config.spec

名称:myserver-second-config

需要:myserver

提供:myserver-config


这很好,但我想确保安装了其中一个配置包。因此,如果我在安装myserver-first-config时尝试安装myserver-second-config,则会出错。

我可以在myserver- {first,second} -config.spec中使用“Conflicts:myserver-config”吗?包裹可以与自身发生冲突吗?我觉得有一种“正确”的方式来做到这一点......

谢谢!

1 个答案:

答案 0 :(得分:3)

你可能已经解决了这个问题 - 在这种情况下,很高兴在这里发布答案,以帮助任何任性的谷歌访问者:)否则:

  • 从RPM v5开始,软件包不能与自身冲突,因为这会阻止软件包的安装。
  • 您要求的是一个'替代'系统,其中多个包可以提供相同的文件。要实现这一点,请将每个包与其他备选方案冲突。

在myserver-first-config中:
冲突:myserver-second-config

在myserver-second-config中:
冲突:myserver-first-config

如果您要添加第三个配置,则会变为:

MYSERVER先配置:
冲突:myserver-second-config myserver-third-config

MYSERVER-第二配置:
冲突:myserver-first-config myserver-third-config

MYSERVER-第三配置:
冲突:myserver-first-config myserver-second-config

这种语法是必要的,因为包可能部分冲突 - 最好明确冲突。如果您不经常添加新的配置文件,则此解决方案完全可行。

相关问题