После длительных периодов бездействия я получаю похожую ошибку для нескольких приложений Sinatra на VPS-проекте DreamHost:
Phusion Passenger Error: You have activated rack 1.2.1, but your Gemfile requires rack 1.3.0.
Как описано @ aren55555, еслиВы просто обновляете страницу, ошибка исчезает.Вот что я обнаружил в конфигурации сервера:
[psXXXXX]$ gem env
RubyGems Environment:
- RUBYGEMS VERSION: 1.3.6
- RUBY VERSION: 1.8.7 (2008-08-11 patchlevel 72) [x86_64-linux]
- INSTALLATION DIRECTORY: /home/XXXXXXXXX/.gems/
- RUBY EXECUTABLE: /usr/bin/ruby1.8
- EXECUTABLE DIRECTORY: /home/XXXXXXXXX/.gems/bin
- RUBYGEMS PLATFORMS:
- ruby
- x86_64-linux
- GEM PATHS:
- /home/XXXXXXXXX/.gems/ <-- Rack 1.3.0 Gem was installed here
- /usr/lib/ruby/gems/1.8 <-- Rack 1.2.1 Gem was installed here
- GEM CONFIGURATION:
- :update_sources => true
- :verbose => true
- :benchmark => false
- :backtrace => false
- :bulk_threshold => 1000
- REMOTE SOURCES:
- http://rubygems.org/
Я предполагаю, что происходит после того, как Пассажир "просыпается", по какой-то причине он выглядит как first (иливозможно только ) для Gems на системном уровне, выбрав Rack 1.2.1 в качестве последней версии.Мое краткосрочное хакерское решение было просто установить Rack 1.3.0 там:
gem install rack -v 1.3.0 --install-dir /usr/lib/ruby/gems/1.8
Кажется, это сработало.Надеюсь, это поможет кому-нибудь еще, оторвать себе волосы.