如何仅允许使用 Yum 从特定存储库下载包?

如何仅允许使用 Yum 从特定存储库下载包?

语境:

我们有多个自定义添加的 yum 存储库(在 CentOS 6 上),并且我们的用户定期通过 yum 安装各种/任意软件来测试。

我们有一个在多个存储库中可用的软件包。它在两个不同的存储库中的名称完全相同,分别称为 Y 和 Z,但软件包并不相同。这两个存储库都用于其他内容/安装,但所讨论的软件包只能从存储库 Y 安装。

我尝试过的:

当我手动安装相关软件包时,我会排除/包含存储库以确保获得正确的版本。但是,普通用户 a) 会忘记这样做,并且 b) 有时会安装依赖于相关软件包的其他软件包,并且它会在依赖项安装过程中从错误的存储库安装。

问题:

有没有什么方法可以配置 yum 的默认设置,即“如果软件包 X 可从多个来源获得,则优先/坚持使用来源 Y 而不是来源 Z?”

我的目标是不必改变yum install用户当前的正常流程;他们仍然应该能够使用最简单的语法安装任意软件。只是特定的软件包(手动安装或作为依赖项安装的一部分)应该只允许来自某些存储库。

答案1

yum-plugin-priorities包。
它允许您优先考虑已配置的存储库。
请参见此处:http://wiki.centos.org/PackageManagement/Yum/Priorities#head-6f52124e909c1691eb0c501ba38ae9202b66d6da

或者您可以排除中的包/etc/yum.conf
http://linux.die.net/man/5/yum.conf

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

这可以全局设置或按存储库设置。

答案2

不,yum 只有一种方法来决定安装哪个版本的软件包 X,即选择它能找到的最新版本(其中“最新”对于 RPM 版本比较具有特定含义)。

真的,我不会像您描述的那样建议使用具有相同名称的不同冲突版本。但是,如果您坚持这样做,以下是一些建议:

  • 为 yum install 指定一个特定版本,例如 name-ver、name-ver-rel(参见man yum
  • 修复您的软件包依赖关系,以使用除普通软件包名称之外的其他名称;要么是特定版本,要么是虚拟的“提供”,要么是仅在所需版本中存在的特定文件,要么是区分各个版本的其他名称。

相关内容