rvmrc指定1.9.3但bundle install --deployment使用1.9.1?为什么这样?

时间:2013-05-23 06:52:21

标签: deployment rvm capistrano bundler

我的rails app(myapp)有一个包含

的.rvmrc
# cat .rvmrc
rvm --create use ruby-1.9.3-p0@myapp

当我在生产中使用capistrano部署我的应用程序时(工作正常)......

#cat deploy.rb
require 'bundler/capistrano'
require 'rvm/capistrano'
...

#cap deploy

我注意到bundle install --deployment将gems安装在 shared / bundle 目录中,这很好。

* executing "cd /usr/local/mycompany/myapp/releases/20130523003402 &&
bundle install --gemfile /usr/local/mycompany/myapp/releases/20130523003402/Gemfile
               --path /usr/local/mycompany/myapp/shared/bundle
               --deployment 
               --quiet 
               --without development test"

我只是好奇为什么捆绑使用的ruby版本是1.9.1。它不应该按照我的.rvmrc中指定的方式获取1.9.3吗?

/usr/local/mycompany/myapp/shared/bundle/ruby/1.9.1

1 个答案:

答案 0 :(得分:3)

1.9.1是ruby兼容级别,所有1.9..*红宝石都应该是兼容的,所以从理论上讲,在ruby 1.9.2中使用来自ruby 1.9.3的宝石应该是安全的。练习有更多的因素,然后只是ruby版本 - 但要小心你可以在ruby版本之间共享宝石。