我是 Chef 新手,正在尝试在基于 RightScale CentOS5.4 32 位 ami 的 AWS t1.micro 实例上安装 chef-server。我按照以下说明从 Rubygems 进行引导指导来自 opscode wiki,但我安装的是 Rubygems 1.8.5 而不是 1.7.2。我卡在这里:
# chef-solo -c /etc/chef/solo.rb -j ~/chef.json -r http://s3.amazonaws.com/chef-solo/bootstrap-latest.tar.gz
[Tue, 07 Jun 2011 10:36:21 -0400] INFO: Setting the run_list to ["recipe[chef-server::rubygems-install]"] from JSON
[Tue, 07 Jun 2011 10:36:21 -0400] INFO: Starting Chef Run (Version 0.9.12)
[Tue, 07 Jun 2011 10:36:21 -0400] ERROR: Running exception handlers
[Tue, 07 Jun 2011 10:36:21 -0400] ERROR: Exception handlers complete /tmp/chef-solo/cookbooks/chef-server/recipes/rubygems-install.rb:203:in `read': No such file or directory - /usr/lib/ruby/gems/1.8/gems/chef-0.9.12/distro/redhat/etc/init.d/chef-expander (Errno::ENOENT)
该文件确实不存在。这是配方损坏还是其他原因?我该如何修复?
谢谢。
更新:
1)降级至 1.7.2 没有帮助,结果相同
2)我也在本地安装了 CentOS5.6 和 Rubygems 1.8.5 和 1.7.2 的机器上试了一下,更可怕的是:
INFO: Processing package[erlang] action install (erlang::default line 26)
/usr/lib/ruby/gems/1.8/gems/chef-0.10.0/bin/../lib/chef/provider/package/yum.rb:64: [BUG] Segmentation fault
ruby 1.8.7 (2011-02-18 patchlevel 334) [i386-linux]
答案1
将您的 ruby 版本升级到至少 1.8.6...
直接来自 opscode wiki:
需要具有 SSL 绑定和开发工具的 Ruby 1.8.6、1.8.7、1.9.1 或 1.9.2 来构建具有本机扩展的 RubyGems
http://wiki.opscode.com/display/chef/Bootstrap+Chef+RubyGems+Installation