如何让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服务器.

相关文章

目录前言一、创建Hadoop用户二、更新apt和安装Vim编辑器三、...
原文连接:https://www.cnblogs.com/yasmi/p/5192694.html ...
电脑重启后,打开VirtualBox,发现一直用的虚拟机莫名的消失...
参见:https://blog.csdn.net/weixin_38883338/article/deta...
Ubuntu 18.04 LTS 已切换到 Netplan 来配置网络接口。Netpla...
介绍每个 Web 服务都可以通过特定的 URL 在 Internet 上访问...