背景:我看过
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的几个版本修复了这个问题.