【问题标题】:issues with Installing gems on chef在厨师上安装宝石的问题
【发布时间】:2015-01-15 19:22:25
【问题描述】:

我正在尝试安装 Berkshelf,但是它抱怨没有安装名为 retryable 的 gem,所以我执行以下操作

gem_package 'retryable'

gem_package 'berkshelf

那么为什么厨师日志中不断发生这种情况:

    Unable to resolve dependencies: berkshelf requires retryable (~> 1.3.3)
---- End output of C:\opscode\chef\embedded\bin\gem install berkshelf -q --no-rdoc --no-ri -v "3.2.2" ----
Ran C:\opscode\chef\embedded\bin\gem install berkshelf -q --no-rdoc --no-ri -v "3.2.2" returned 1

尽管我可以清楚地看到这里正在安装 retryable:

[2015-01-14T17:55:00+00:00] INFO: Processing gem_package[retryable] action install (go-agent::install line 14)
[2015-01-14T17:55:02+00:00] INFO: Processing gem_package[berkshelf] action install (go-agent::install line 16

怎么了?

编辑: 在强制它安装我想要的版本(v 2.0.0 可重试,因为 ridley 需要那个版本以及 berkshelf)之后,我现在收到此错误:

[2015-01-15T11:11:20+00:00] FATAL: Mixlib::ShellOut::CommandTimeout: gem_package[berkshelf] (go-agent::install line 19) had an error: Mixlib::ShellOut::CommandTimeout: command timed out:
---- Begin output of C:\opscode\chef\embedded\bin\gem install berkshelf -q --no-rdoc --no-ri -v "3.2.3" ----
STDOUT: 
STDERR: 
---- End output of C:\opscode\chef\embedded\bin\gem install berkshelf -q --no-rdoc --no-ri -v "3.2.3" ----

【问题讨论】:

    标签: gem chef-infra berkshelf


    【解决方案1】:

    retryable 的最新版本是 2.0.0,因此这是您通过第一个 gem_package 安装的版本。您正在使用gem_package,但您没有安装 Ruby,因此它无法返回到 Chef's(它确实不应该),我猜测发生了某种依赖冲突。尝试强制 retryable 到 1.3.6 版本,这是与 Berkshelf 兼容的最新版本。

    【讨论】:

    • 我强制它安装 2.0.0 版(ridley 需要 2.0.0 版或可重试),现在 berk Shelf install 挂起;它给出了一个超时错误。
    • 您是否在系统范围内安装了 gecode(并告诉它使用它)?如果没有,编译 depselector-lib-gecode 作为依赖项将需要大约 20-30m,具体取决于机器。您没有使用 ChefDK 包有什么原因吗?
    • 因为安装需要处理 PATH 环境,而且这是我打开的一罐蠕虫病毒,当事情看起来像它们工作时发现太烦人了,应该工作,在盒子和工作,但作为厨师食谱的一部分尝试时没有工作。
    • Windows,我们认为最好的选择就是预装一个 ami(aws) 和路径预设置。
    猜你喜欢
    • 1970-01-01
    • 2013-10-19
    • 2016-03-23
    • 2018-06-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-03
    • 2016-07-28
    相关资源
    最近更新 更多