DreamHost,Passenger和Rails 3.0.0.rc的机架错误

时间:2010-09-27 02:12:23

标签: ruby-on-rails-3 passenger rack bundler dreamhost

背景:我已查看this question以及this one - 遗憾的是,无济于事。

错误消息(乘客):您已经激活了机架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

按照上面的安装命令,“捆绑检查”将返回:

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服务器宝石,我在某种程度上混淆了机架在我的真实应用程序中的实现。

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

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

感谢您在这个凌乱/漫长的问题中苦苦挣扎

1 个答案:

答案 0 :(得分:2)

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