【问题标题】:Ansible: install package with version constraintAnsible:安装带有版本约束的包
【发布时间】:2020-04-07 04:14:25
【问题描述】:

使用 Ansible 安装 rpm 包时,如何指定版本约束,例如 >= 3

如果由于某种原因该软件包仅在较低版本中可用,则软件包安装任务应该失败。

【问题讨论】:

  • 关于近距离投票:Ansible 剧本是用编程语言编写的。因此,有关该语言某些方面的问题是 SO 的主题。另请参阅标记为 ansible 的其他 > 16k 问题。我的问题是关于如何在 Ansible 中通过版本检查来实现包安装任务。

标签: ansible dnf


【解决方案1】:

这样做没有多大意义。实际上,在给定时间,您的发行版不会在 repos 中提供同一包的多个版本。也许你可以有重复,但前提是一个包可以从多个 repos 中获得,每个 repos 都有不同的版本。

请参阅例如 this answer,其中提供了更多详细信息。

你可以有不同的包,例如 python34 和 python36,但它们不是同一个包的不同版本,它们是不同的包。

所以总而言之,你不能用 ansible 真正做到这一点,因为在系统级别它没有多大意义。

【讨论】:

  • 有人可能会这么认为。但事实并非如此简单。由于各种原因,系统包管理器可能会在给定时间简单地错过一些最近的包版本。例如,您期望启用的存储库未启用。或者由于网络问题,代理本地存储库等较新版本根本无法通过包管理器在本地使用。如果您知道您需要某个最低版本,那么您肯定希望及早发现不匹配。
  • 你应该确保配置了正确的存储库等,可能在你的角色或剧本中。我理解您的担心,但我的回答仍然是正确的,您将无法直接表达约束。一种方法是检索系统上当前可用的版本,分配给一个变量,然后仅在版本匹配时执行安装任务。
猜你喜欢
  • 2017-05-13
  • 2021-12-29
  • 2018-09-22
  • 1970-01-01
  • 2022-10-07
  • 2019-09-10
  • 2018-04-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多