2014-01-20 21 views
0

我有一个安装RVM和Ruby的厨师食谱。在配方我使用execute资源运行以下命令:运行“rvm别名创建默认2.0”命令?

rvm alias create default 2.0 

但这不是我的默认的Ruby版本设置为2.0。如果我直接在主机上运行这个命令,它会起作用,因为当我输入ruby -v时,版本设置为2.0,但是当我尝试通过Chef recipe ruby -v运行时,仍然返回1.8。

这是我的资源声明:

execute "set_ruby_to_version_#{version}" do 
    command "rvm alias create default #{version}" 
    action :run 
end 

怎么就不会通过厨师的食谱工作?我知道有一本食谱可以用来处理RVM,但我仍然想知道为什么这不起作用。

+1

可能是因为你运行命令作为你的用户,但厨师运行是作为根? –

回答

1

,因为如果你依赖这种包装RVM 1.25 RVM不创建$rvm_path/bin包装(它已经在你的PATH)然后创建别名后,运行此:

rvm wrapper default --no-prefix 

如果您需要特定的宝石的包装加它的名字的命令后,例如:

rvm wrapper default --no-prefix haml 

它会创建仅此包装:$rvm_path/bin/haml

其他方法将添加自动生成的包装,以PATH

PATH=$rvm_path/gems/ruby-2.1.0/wrappers:$PATH 
0
rvm alias create default 2.1.2 
rvm use 2.1.2 

为我工作。