Cookbook 的深度依赖需要一个不可用的 Ruby 版本。如何通过 Chef for Amazon Linux 规避?
Posted
技术标签:
【中文标题】Cookbook 的深度依赖需要一个不可用的 Ruby 版本。如何通过 Chef for Amazon Linux 规避?【英文标题】:Cookbook's deep dependency requires an unavailable Ruby version. How to circumvent via chef for Amazon Linux? 【发布时间】:2020-02-14 16:34:51 【问题描述】:我是一名非 Ruby 开发人员,在 Amazon Linux AMI 2018.03、OpsWorks Agent v.3451 上使用 Chef 11.10。
我的Route53
cookbook requires fog
其中requires fog-brightbox
需要unspecified version 的dry-inflector
其most recent version requires Ruby @9876 p>
fog
是通过chef_gem
安装的,它使用separate version of Ruby 保留仅供Chef 客户端使用,不建议更新此Ruby 版本,因为它可能会disable the Opsworks Agent。
解决此问题的唯一方法是分叉和托管链中的每个依赖项,然后强制使用较早版本的深度依赖项吗?
【问题讨论】:
版本0.1.2
of the dry-inflector
gem 不需要特定版本的 ruby。您能否确保预先安装了该版本?
这个。我在 dep gem 之后安装。谢谢!
【参考方案1】:
版本 0.1.2
of the dry-inflector
gem 不需要特定版本的 Ruby。
尽快在您的机器上安装具有该特定版本的 gem。
【讨论】:
我继承了一个大型 Chef 部署,我遇到了上面描述的问题。我不明白如何尽快安装dry-inflector
gem。你能指出我正确的方向吗?
@RobWright 我已经有 6 年没有和 Chef 合作过了,所以我脑子里没有确切的语法。这个想法是,每次安装 Ruby 时,都必须安装 gem,尤其是 bundler
可能会安装在您的配方中的某个位置。搜索它并以相同的方式直接在它前面安装正确版本中缺少的gem。
谢谢。我会朝那个方向挖掘。
@RobWright 我们的 route53 配方进行安装:chef_gem "dry-inflector" do action :install version node['route53']['dry-inflector_version'] end
。尝试搜索dry-inflector_version
以上是关于Cookbook 的深度依赖需要一个不可用的 Ruby 版本。如何通过 Chef for Amazon Linux 规避?的主要内容,如果未能解决你的问题,请参考以下文章
ML.NET Cookbook:(16)什么是规范化?为什么我需要关心?