我正在尝试安装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
即使我可以清楚地看到正在安装可重试的地方:
[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" ----
答案 0 :(得分:1)
retryable
的最新版本是2.0.0,因此这是您通过第一个gem_package
安装的版本。您正在使用gem_package
但是您没有安装Ruby,因此它无法回到Chef(它真的不应该)并且我猜测它有某种依赖性冲突正在发生。尝试强制retryable
版本1.3.6,最新版本与Berkshelf兼容。