Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
vagrant使用了错误的ruby版本_Ruby_Vagrant_Chef Infra - Fatal编程技术网

vagrant使用了错误的ruby版本

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"

我正试图通过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 "\\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