RVM,Capistrano和bundler路径问题

时间:2011-09-05 22:25:32

标签: ruby-on-rails-3 gem rvm capistrano bundler

我手动安装时的生产宝石路径与bundler + capistrano之间的差异似乎不一致。

在rvm安装ruby 1.9.2并创建gemset“myapp”之后,我确实通过gem install bundler安装了bundler。

它安装在路径中:

  

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

Bundler通过Capistrano将剩余的宝石安装到:

  

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

我的deploy.rb文件的开头是:

$:.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"

3 个答案:

答案 0 :(得分:1)

令人讨厌的是,捆绑人员无意与RVM合作并希望bundler管理ruby版本,所以到目前为止我的解决方法是在我的GEM_PATH目录中简单地用符号链接ruby和1.9.1指向“。”< / p>

答案 1 :(得分:0)

创建gemset之后,在安装bundler之前是否明确“rvm使用1.9.2@myapp”?

答案 2 :(得分:0)

我遇到了类似capistrano / bundler / rvm设置的问题。

至少在我的情况下,如果我跑

bundle exec <command>

来自capistrano创建的安装:

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

我拿起我的GEMDIR

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