vagrant使用了错误的ruby版本
我正试图通过chef启动并运行“cloudwatchtographite”gem;但是(不总是有吗?)它失败了,因为vagrant一直在使用vagrant_ruby,它的版本是1.8,而我需要的最低版本是1.9.2(特别是nokogiri,依赖项需要1.9.2),我如何安装正确的版本 我试过使用vagrant使用了错误的ruby版本,ruby,vagrant,chef-infra,Ruby,Vagrant,Chef Infra,我正试图通过chef启动并运行“cloudwatchtographite”gem;但是(不总是有吗?)它失败了,因为vagrant一直在使用vagrant_ruby,它的版本是1.8,而我需要的最低版本是1.9.2(特别是nokogiri,依赖项需要1.9.2),我如何安装正确的版本 我试过使用 execute "gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3"
execute "gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3"
execute "\\curl -sSL https://get.rvm.io | bash -s stable --ruby=2.0"
execute "rvm use 2.0 --default"
但它的错误是“rvm不是命令”,甚至没有安装ruby 2.0
我已经添加了vagrant'omnibus'插件,并将其设置为(在vagrant文件中):
但它仍然使用1.8版本的流浪红宝石
我不知所措,我该如何让它工作?我不明白你的问题,vagrant ruby与安装在目标VM中的chef ruby无关。你可以使用chef在目标上安装ruby,然后安装gems,但你没有在这里显示任何关于gem安装的信息,这听起来是你的原始问题(并且使用多个
execute
命令无法实现您想要的效果,因为每个execute
都有自己的上下文)rvm通常会设置一个脚本在启动时运行(例如在.bashrc中)。也许您需要在rvm使用命令之前手动启动此脚本-类似于execute“source$HOME/.rvm/scripts/rvm&&rvm use 2.0——默认值"
您是想将cloudwatchtographite
gem作为系统gem安装,还是只想在Chef中使用它?通过apt get安装ruby1.9.3-dev
解决了这个问题。这不是我想要的,但对于vagrant来说很好。@user3536548如果您想要的是clo,这肯定是一种方法udwatchtographite
安装为系统gem。如果您只打算从Chef处使用它,则应使用Chef_gem
资源来安装gem。使用Chef_gem
时,将使用Chef的嵌入式Ruby(2.1.x)。
config.omnibus.chef_version = :latest