微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何让Chef-Server在Ubuntu上使用Ruby 1.9?

我使用 official instructions在Ubuntu 12.04上安装了Chef Server,它使用嵌入了ruby 1.8.7的“omnibus安装程序”.

我正在尝试安装knife-windows,但是当我运行gem install knife-windows时出现此错误

ERROR:  Error installing knife-windows:
        gssapi requires Ruby version >= 1.9.1.

我尝试安装RVM和1.9.3,但是我收到了这个错误,并退回:

/opt/vagrant_ruby/lib/ruby/site_ruby/1.8/rubygems.rb:900:in `report_activate_error': Could not find RubyGem chef (>= 0) (Gem::LoadError)
    from /opt/vagrant_ruby/lib/ruby/site_ruby/1.8/rubygems.rb:248:in `activate'
    from /opt/vagrant_ruby/lib/ruby/site_ruby/1.8/rubygems.rb:1276:in `gem'
    from /opt/vagrant_ruby/bin/knife:18

安装Chef服务器和安装服务器的正确方法是什么?用Ruby 1.9.x的刀?

看来Chef服务器已安装到由Vagrant(/ opt / vagrant_ruby)创建的虚拟机中.但是,Chef Server 11是基于Erlang构建的,而不是Ruby.它确实带有Ruby,但你不应该直接使用它.它用于使用chef-server-ctl管理Chef服务器.

上面的Vagrant框中的安装可能会将各种Ruby二进制文件放在认的$PATH中,这意味着使用gem install将尝试将knife-windows gem安装到由Vagrant放置在那里的Ruby中.

为了进一步说明,Opscode为Chef和Chef Server提供的软件包包括他们自己独立的Ruby安装. Opscode这样做是因为Chef和Chef Server支持的平台都认提供不同的(过时的)Ruby版本.

每天,与Chef Server的大多数交互都将通过API使用knife(或webui).刀和它的插件应该从像本地笔记本电脑这样的“工作站”系统中使用.如果Chef是安装Ruby的唯一原因,那么使用Chef package中嵌入的Ruby,它应该安装在本地系统上.安装程序适用于大多数主要平台,包括Ubuntu,Windows,OS X等.根据插件的不同,可能需要各种开发头和构建工具(gcc,make等).

对于它的价值,Chef Server当前“omnibus”包中的Ruby版本不是1.8.7.它可以在以下位置找到:

ubuntu@os-9348884648703137:~$/opt/chef-server/embedded/bin/ruby --version
ruby 1.9.3p286 (2012-10-12 revision 37165) [x86_64-linux]

(撰写本文时的当前版本)

Chef客户端软件包中使用的Ruby版本通常更频繁地更新,因为客户端/工作站使用的需求比Chef Server更快. Chef客户端包中的嵌入式Ruby版本是:

% /opt/chef/embedded/bin/ruby --version
ruby 1.9.3p286 (2012-10-12 revision 37165) [x86_64-darwin11.2.0]

Opscode计划在下一个版本中更新此版本,因此它可能与此站点的未来访问者显示的不同.另请注意,这来自“本地工作站”安装,而不是Chef服务器.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐