我在DreamHost上打开了一个专用的托管帐户。我部署了一个轨道应用程序。我得到了以下错误。关于捆绑器路径的困惑
You have already activated rack 1.2.1, but your Gemfile requires rack 1.3.6. Using bundle exec may solve this.
我检查了版本。
$ gem list -d rack
rack (1.2.1, 1.1.0, 1.0.1, 1.0.0)
Author: Christian Neukirchen
Rubyforge: http://rubyforge.org/projects/rack
Homepage: http://rack.rubyforge.org
Installed at (1.2.1): /usr/lib/ruby/gems/1.8
(1.1.0): /usr/lib/ruby/gems/1.8
(1.0.1): /usr/lib/ruby/gems/1.8
(1.0.0): /usr/lib/ruby/gems/1.8
机架1.3.6不存在。但是当我用“捆绑秀”检查它时,它已经安装了。 (其实我没有 “捆绑安装--deployment”)
$ bundle show rack
/.../my_rails_app_root/vendor/bundle/ruby/1.8/gems/rack-1.3.6
而且我的config/setup_load_paths.rb
if ENV['MY_RUBY_HOME'] && ENV['MY_RUBY_HOME'].include?('rvm')
begin
rvm_path = File.dirname(File.dirname(ENV['MY_RUBY_HOME']))
rvm_lib_path = File.join(rvm_path, 'lib')
$LOAD_PATH.unshift rvm_lib_path
require 'rvm'
RVM.use_from_path! File.dirname(File.dirname(__FILE__))
rescue LoadError
# RVM is unavailable at this point.
raise "RVM ruby lib is currently unavailable."
end
end
ENV['BUNDLE_GEMFILE'] = File.expand_path('../Gemfile', File.dirname(__FILE__))
require 'bundler/setup'
其实我找到了解决办法。只需“gem install rack -v 1.3.6”即可解决问题。
但为什么乘客拿起系统的机架宝石(或用户的机架宝石),而不是捆绑的机架宝石?你如何避免这个问题?
谢谢。
山姆
我试过安装Rack 1.3.6,那对我没有用。它仍然在说它“已经启动机架1.2.1”。 – mysmallidea 2012-02-25 19:37:33