【发布时间】:2013-07-01 20:35:13
【问题描述】:
我有安装了 ruby 1.9.1 的 chef 11.4.4。我想安装 berkshelf 但它需要 ruby 1.9.2 或更高版本。我用 rvm 安装了 ruby 2.0.0-p247(最新稳定版)。当我运行刀命令时,我得到...
# knife help
/opt/chef/embedded/lib/ruby/site_ruby/1.9.1/rubygems/dependency.rb:247:in `to_specs': Could not find chef (>= 0) amongst [rake-10.1.0, rvm-1.11.3.8] (Gem::LoadError)
from /opt/chef/embedded/lib/ruby/site_ruby/1.9.1/rubygems/dependency.rb:256:in `to_spec'
from /opt/chef/embedded/lib/ruby/site_ruby/1.9.1/rubygems.rb:1231:in `gem'
from /usr/bin/knife:22:in `<main>'
如果我把它切换回系统版本,也就是嵌入chef的ruby版本,它会再次工作。
# rvm use system
Now using system ruby.
# knife help
Usage: knife SUBCOMMAND (options)
.
.
.
我在谷歌上搜索了将 ruby 升级到 2.0.0x for chef 的方法,但没有运气。我喜欢如此轻松地切换 ruby 版本的能力。如果 chef 可以做同样的事情,那就太好了,但是让它与最新的稳定版甚至 1.9.2 版的 ruby 一起工作会很棒。谢谢!
【问题讨论】:
-
Chef 11.4.4 已知 Ruby 2.0 存在问题(实际上是 rubygems 2.0.x 格式已更改)。尝试安装旧版本的 rubygem,例如 1.8.25
gem update --system 1.8.25或暂时切换到 1.9.3-p448。我这样做解决了厨师独奏的问题。 -
谢谢。这有帮助。我切换到 1.9.3 并安装了 chef gem,它工作正常。
-
我会回复并添加更多信息。它应该对许多遇到相同问题的其他人有用,请稍后投票:-)
标签: ruby rvm chef-infra berkshelf