2015-12-04 67 views
3

我已经生成了两个RPM。一个为CentOS 6和一个为CentOS 7百胜尝试在CentOS 6上安装.el7发行版

my-package-0.0.1-1.el6.x86_64

my-package-0.0.1-1.el7.x86_64

当我做了CentOS 6的机器上yum info my-package,它给我的EL7信息。当我做yum install my-package它也是这样,得到el7版本。它为什么这样做?我试图避免在el6机器上安装el7版本。

回答

3

这听起来像你有他们在同一个百胜储存库。你不应该。你应该发布一个到CentOS6回购,另一个到CentOS7回购。否则,yum正在比较它们并在比较发布标签时决定7> 6,因此这是最新的可用包。

el6(又名“DIST标签”)是为了方便用户作为后缀的释放,是东西,RPM可以直接选择上。

+0

谢谢您的回答。在咨询开发者之后,他们也说了同样的事情。我们只为el6开发,所以我确保让他们知道他们需要在安装时指定完整的Pkg名称,或启动el7的回购站。 – codeMonkey

3

达成一致,显然OP把RPM包都在同一个库中,还有一些细节被忽略@aaron-d-marasco

  • el6标签不是“方便用户”,而是通过打包解决方法。
  • ,如果你检查包的元信息,你可能会注意到,提供的包.el6(或.el7)是附加发布标签,例如,为zip-3.0-10.el7.x86_64,你可能会看到这样的事情:

    Name : zip
    Version : 3.0
    Release : 10.el7
    Architecture: x86_64

  • RPM的选择规则使用整个标签为版本,并指定每个发布

  • DIST提到标签与的其余部分一起进行排序释放标签
  • 的解决办法是因为在该模式分布没有单独的元数据信息,但包装商要跟踪这一点。
  • 因为释放标签“拥有”被打包(和由上游开发版),然后打包去决定如何使用组织包—主题为RPM内置规则由yum选择。

延伸阅读:

+0

哇如何比较rpms和版本是有点疯狂。感谢您的阅读。我还认为将%{dist}标签放在发布字段中是一种不可靠的方式,很可能是一种解决方法。特别是当系统上有可用的宏时,例如{el},{centos} – codeMonkey

+0

感谢您的反馈意见;我调整了包含的答案。我的意思是yum/rpm无法直接选择该标签,因为它不是spec文件中的“真实”标签。 –