ruby-on-rails-3 – DreamHost,Passenger和Rails 3.0.0.rc的机架错误

背景:我看过
this question以及
this one – 遗憾的是,无济于事.

错误消息(Passenger):您已经激活了机架1.1.0,但您的Gemfile需要机架1.2.1.考虑使用bundle exec.

我的Gemfile:

source 'http://rubygems.org'

gem 'rails', '3.0.0.rc'
gem 'nifty-generators' 
gem 'nokogiri'
group :after_initialize do
    gem 'feedzirra'
end

我的Gemfile.lock有这一行:

rack (1.2.1)

我的environment.rb在顶部有这一行:

ENV['GEM_PATH'] = File.expand_path('~/.gems') + ':/usr/lib/ruby/gems/1.8'

我的boot.rb在顶部有这一行:

Gem.clear_paths

我在本地正确安装了机架(1.2.1) – 我的应用程序在我的本地主机上正常运行,版本1.2.1显示在终端中的“宝石列表”之后.

在将我的应用程序推送到生产服务器之前,我已经使用“捆绑包”打包了我的宝石.

我在部署之前运行了以下命令(在我的生产服务器上,从应用程序的根目录):

bundle install --path vendor/bundle --local

按照上面的安装命令,“bundle check”返回:

The Gemfile's dependencies are satisfied

这是乘客提供的回溯(连同上面提到的错误消息):

0   /home/user/.gems/gems/bundler-1.0.0/lib/bundler/runtime.rb      27      in `setup'
1   /home/user/.gems/gems/bundler-1.0.0/lib/bundler/spec_set.rb     12  in `each'
2   /home/user/.gems/gems/bundler-1.0.0/lib/bundler/spec_set.rb     12  in `each'
3   /home/user/.gems/gems/bundler-1.0.0/lib/bundler/runtime.rb  17  in `setup'
4   /home/user/.gems/gems/bundler-1.0.0/lib/bundler.rb  100     in `setup'
5   /home/user/gseeds.mywebsite.com/releases/20100927012812/config/boot.rb  9   
6   /usr/lib/ruby/1.8/rubygems/custom_require.rb    31  in `gem_original_require'
7   /usr/lib/ruby/1.8/rubygems/custom_require.rb    31  in `require'
8   /home/user/gseeds.mywebsite.com/releases/20100927012812/config/application.rb   1   
9   /usr/lib/ruby/1.8/rubygems/custom_require.rb    31  in `gem_original_require'
10  /usr/lib/ruby/1.8/rubygems/custom_require.rb    31  in `require'
11  /home/user/gseeds.mywebsite.com/releases/20100927012812/config/environment.rb   7   
12  /usr/lib/ruby/1.8/rubygems/custom_require.rb    31  in `gem_original_require'
13  /usr/lib/ruby/1.8/rubygems/custom_require.rb    31  in `require'
14  config.ru   3   
15  /usr/lib/ruby/gems/1.8/gems/rack-1.1.0/lib/rack/builder.rb  46  in `instance_eval'
16  /usr/lib/ruby/gems/1.8/gems/rack-1.1.0/lib/rack/builder.rb  46  in `initialize'
17  config.ru   1   in `new'
18  config.ru   1 

我想知道是否有人提出了解决方案?

应该注意的一点是,一个示例rails应用程序 – 也就是说,运行一个新的appName和直接ftp到DreamHost上的生产服务器 – 将运行正常.这让我感到不安,因为我想我的真实应用程序和示例应用程序都具有机架(1.2.1)依赖性;这对我来说意味着,为了绕过DreamHost服务器宝石,我在某种程度上混淆了机架在我的真实应用程序中的实现.

我让我的示例rails应用程序在DreamHost上的一个单独的子域上运行,同时为我正在尝试部署的两个真实应用程序的子域获取此错误.

此外,我最初尝试在采用供应商/缓存方法之前在我的DreamHost用户目录中本地安装gem.也许这不会影响任何事情..

感谢您通过这个凌乱/冗长的问题苦苦挣扎

最佳答案 抱怨Dreamhost并告诉他们升级Phusion Passenger.现在已经为Phusion Passenger的几个版本修复了这个问题.

点赞