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)什么是规范化?为什么我需要关心?

深度理解SpringIOC,面试你根本不需要慌!

python cookbook第三版学习笔记九:函数

Python Cookbook(第3版)中文版:15.10 用Cython包装C代码

ML.NET Cookbook:(12)我想看看模型的系数

深度学习系列42:多模态ruDalle生成模型