开发者

RVM, Capistrano and bundler path issues

i seem to have a discrepancy between production's gem path when I installed manually versus by bundler+capistran开发者_开发技巧o.

After rvm installing ruby 1.9.2 and creating a gemset "myapp", i did install bundler via gem install bundler.

It was installed into the path:

/usr/local/rvm/gems/ruby-1.9.2-p290@myapp/gems

Bundler via Capistrano installed the remaining gems into:

/usr/local/rvm/gems/ruby-1.9.2-p290@myapp/ruby/1.9.1/gems

Beginning of my deploy.rb file is:

$:.unshift(File.expand_path('./lib', ENV['rvm_path']))
require 'rvm/capistrano'
require 'bundler/capistrano'

set :rails_env,             'production'
set :rvm_type,              :system
set :rvm_ruby_string, "ruby-1.9.2-p290@myapp"
set :rvm_path,              "/usr/local/rvm"
set :rvm_bin_path,      "#{rvm_path}/bin"
set :rvm_lib_path,      "#{rvm_path}/lib"

set :default_environment, {
  'PATH'                    => "#{rvm_path}/gems/ruby/1.9.1/bin:#{rvm_bin_path}/bin:$PATH",
  'RUBY_VERSION'    => '1.9.2',
  'GEM_HOME'        => "#{rvm_path}/gems/#{rvm_ruby_string}",
  'GEM_PATH'        => "#{rvm_path}/gems/#{rvm_ruby_string}",
  'BUNDLE_PATH'     => "#{rvm_path}/gems/#{rvm_ruby_string}"
}

set :bundle_dir,            "#{rvm_path}/gems/#{rvm_ruby_string}"
set :bundle_flags,      "--deployment --verbose"


Annoyingly, bundler folks have no intention on working well with RVM and want bundler to manage ruby versions so the workaround so far for me is to simply symbollically link for ruby and 1.9.1 in my GEM_PATH directory pointing to "."


After you created your gemset, did you explicitly "rvm use 1.9.2@myapp" before installing bundler?


I've encountered similar problems with capistrano/bundler/rvm setups.

At least in my case, if I run

bundle exec <command>

from the capistrano created installation:

/u/apps/<app-name>/current

I pick up my GEMDIR

bundle exec env | grep GEM_HOME
GEM_HOME=/u/apps/app-name/shared/bundle/ruby/1.9.1
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜