1

我的 Rails 应用程序(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 将 gem 安装在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
4

1 回答 1

3

1.9.1是 ruby​​ 兼容级别,所有 ruby​​ 都应该是兼容的,所以理论上在 ruby​​ 中使用 ruby​​ 中的1.9..*gem 应该是安全的,实际上,除了 ruby​​ 版本之外,还有更多的因素 - 但要小心,你可以在 ruby​​ 版本之间共享 gem。1.9.21.9.3

于 2013-05-23T15:30:00.997 回答