如何只使用Yum从一个特定的仓库下载一个包?

语境:

我们有多个自定义的yum软件库(在CentOS 6上),我们的用户通过yum来定期安装各种/任意的软件来testing。

我们有一个可用于多个存储库的软件包。 它在两个不同的存储库上被命名为完全相同的东西,称它们为Y和Z,但是包不相同。 这两个存储库都用于其他的东西/安装,但是这个软件包只能从repo Y安装。

我试过的东西:

当我手动安装有问题的软件包时,我排除/包括回购确保我得到正确的版本。 但是,普通用户a)忘了这么做,并且b)有时会安装依赖于所涉及的包的其他包,并且将其作为依赖性安装过程的一部分从错误的回购库中安装。

题:

有没有什么办法可以configurationyum的默认值来表示“如果包X可以从多个源中select,比源Z优先/坚持源Y?

我的目标不是要改变我们的用户目前拥有的正常的yum install过程; 他们应该仍然可以使用最简单的语法来安装任意的软件。 只是特定的包(手动安装或作为依赖项安装的一部分)应该只允许来自某个回收站。

yum-plugin-priorities软件包。
这使您可以优先configuration存储库。
看到这里: http : //wiki.centos.org/PackageManagement/Yum/Priorities#head-6f52124e909c1691eb0c501ba38ae9202b66d6da

或者你可以在/etc/yum.conf排除软件包。
http://linux.die.net/man/5/yum.conf

排除要从更新或安装中排除的软件包列表。 这应该是一个空格分隔列表。 允许使用通配符的壳体(例如*和?)。

这可以在全局或每个存储库中设置。

不,yum只有一种方法来决定安装哪个版本的软件包X,即select最新的版本(“最新”对RPM版本比较具有特定含义)。

真的,我不会推荐使用相同名称的不同版本。 但是,如果你坚持下去,有几点build议:

  • 给yum install一个特定的版本,例如name-ver,name-ver-rel(参见man yum
  • 修复软件包的依赖关系,以使用纯软件包名称以外的内容; 要么是特定的版本,要么是一个虚拟的“提供”,或者是一个只存在于所需版本中的特定文件,或者其他不同的版本。