2016-12-16 34 views
1

我在我的配方中添加了rvm --create --ruby-version [email protected]以创建gemset。运行厨房汇聚不会导致创建.ruby-gemset.ruby-version。但是当我在VM终端上直接运行rvm --create --ruby-version [email protected]时,文件正在创建。可能是什么原因?谢谢。 这里是我的bash代码如下所示:通过厨师创建gemset的问题 - .ruby-gemset和.ruby-version未创建

bash "somename" do 
    user 'root' 
    cwd "/var/www/html/APIStoresView/" 
    code <<-EOH 
    rvm --create --ruby-version [email protected] 
    EOH 
end 
+0

仅仅因为你是从一个红宝石和宝石路径被厨师红宝石固定的环境中运行的?当你在命令行时不是。要么你必须在你的bash命令中设置适当的环境变量,或者看看其他的烹饪书(rbenv也许) – Tensibai

+0

抱歉听​​起来天真,但我们如何设置env变量?此外env变量的值是什么? – Anjana

+1

为了设置env值,它在[documentation](https://docs.chef.io/resource_bash.html#properties)中,值必须在'rvm use'之后由'rvm env'给出。但请考虑遵循你在闲暇时得到的建议。主要转向poise_ruby或rbenv。 – Tensibai

回答

1

在服务器上一般使用RVM应当劝阻,和厨师+ RVM是冒险的,在最好的时候。更具体地说,appbundler(由厨师用来创建边缘化子弹的二进制存根)设置了很多可能会混淆rvm的环境变量。

如果您需要某个项目的特定版本的Ruby,我强烈推荐使用poise-ruby + poise-ruby-build和Bundler而不是rvm和gemsets。

+0

但是如果我需要在同一台服务器和多个gemset版本上使用多个Ruby版本呢? – Anjana

+0

它可以处理。 – coderanger