Błąd pasażera Phusion: aktywowałeś rack 1.2.1, ale twój Gemfile wymaga rack 1.2.2

Próbuję uruchomić aplikację Ruby on Rails na udostępnionym serwerze Dreamhost. Jak dotąd wszystko jest w porządku, z wyjątkiem jednego dziwnego błędu, którego nie udało mi się rozwikłać.

Czasami, gdy odwiedzam aplikację internetową, pojawia się błąd pasażera Phusion mówiący:

Aktywowałeś już rack 1.2.1, ale twój plik Gemfile wymaga rack 1.2.2. Rozważ użycie bundle exec.

Kiedy tylko odświeżam stronę wydaje się działać, choć-koniec z błędem Phusion wiadomość.

Po innych wątkach przepełnienia stosu i podobnych DreamHost wiki, dodałem następujący tekst na górze pliku config/environment.rb:

if ENV['RAILS_ENV'] == 'production'  # don't bother on dev
  ENV['GEM_PATH'] = '/home/myusername/.gems' + ':/usr/lib/ruby/gems/1.8'
end

Tutaj wpisz opis obrazka

Author: aren55555, 2011-04-25

9 answers

Spróbuj ponownie uruchomić serwer po edycji w Gemfile i umieścić to: gem 'rack', '1.2.1'

 9
Author: Surya,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-04-25 07:10:31

To działa w Rails 3.0.X & pasażer 3.0.15

Utwórz plik:

config/setup_load_paths.rb

Z treścią:

require 'rubygems'
require 'bundler/setup'

Pasażer załaduje klejnot stojaka określony w pliku klejnotu.lock

 8
Author: t_itchy,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-08-10 20:46:09

[[3]} po długim okresie nieaktywności otrzymuję podobny błąd dla kilku aplikacji Sinatra na DreamHost VPS:

Phusion Passenger Error: You have activated rack 1.2.1, but your Gemfile requires rack 1.3.0.

Jak w opisie @aren55555, jeśli po prostu odświeżysz stronę, błąd zniknie. Oto coś, co odkryłem o konfiguracji serwera:

[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/

Domyślam się, co się działo, po tym, jak pasażer "się obudził", z jakiegoś powodu patrzy najpierw (a może tylko) na klejnoty w na poziomie systemu, wybierając Rack 1.2.1 jako najnowszą wersję. Moim krótkoterminowym hacky rozwiązaniem było po prostu zainstalowanie tam Racka 1.3.0:

gem install rack -v 1.3.0 --install-dir /usr/lib/ruby/gems/1.8

Wygląda na to, że zadziałało. Mam nadzieję, że to będzie pomocne dla każdego innego.
 5
Author: Todd Mazierski,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-07-06 12:58:30

Mam ten sam problem: "aktywowałeś już rack 1.2.1, ale twój Gemfile wymaga rack 1.2.3"

  1. Dodaj do Gemfile: gem 'rack', '1.2.1'
  2. Aktualizacja pakietu
  3. Odinstaluj wersje rack > 1.2.1

    [wasp]$ gem list / grep rack

    Rack (1.2.1, 1.1.0, 1.0.1, 1.0.0)

  4. Dotknij tmp / restart.txt

  5. :) happy
 5
Author: Jivko Georgiev,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-08-17 22:03:32

Rozwiązałem ten sposób na Dreamhost:

Usuń z Gemfile dowolną linię: gem 'rack',....

rm Gemfile.lock
rm -rf .bundle
rm -rf  vendor/bundle

Instaluj / używaj klejnotów lokalnie i regeneruj plik ' Gemfile.Blokada " z:

bundle install
W tym celu należy zainstalować gems w vendor / bundle.]}
bundle install --deployment

Restart:

touch tmp/restart.txt
 3
Author: Sebtm,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-10-16 09:21:15

Właśnie natknąłem się na ten problem na Dreamhost. Problem polega na tym, że serwer Dreamhost ma zainstalowany rack 1.2.1 i twój Gemfile ładuje się 1.2.2. Znalazłem, że jeśli tylko zainstaluję rack:

gem install rack

Następnie najnowsza wersja rack (1.2.2 od teraz) zostanie zainstalowana w Twoim folderze Home gems (~ / .klejnotów). Kiedy Pasażer uruchomi się, będzie korzystać z 1.2.2.

 2
Author: Jason L,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-04-27 04:31:00

Miałem podobny problem z Apache: "aktywowałeś już rack 1.2.3, ale twój plik Gemfile wymaga racka 1.2.2. Rozważ użycie bundle exec."

Problem polegał na tym, że Passenger instaluje rack 1.2.3 i mój rails APP rack 1.2.2:

$ gem list |grep rack
rack (1.2.2, 1.2.3)

Try:

$ gem uninstall --version=1.2.3 rack

Restart serwera i rozwiązany

 2
Author: salidux,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-09-07 13:02:55

Walczyłem z tym problemem godzinami, zanim w końcu zrezygnowałem z pasażera. Każda nowa wersja Rails będzie używać nowszej szafy niż wymaga tego pasażer Dreamhost.

Jednak nie potrzebujesz pasażera, aby uruchomić aplikację. Dreamhost zapewnia dość łatwe (i działające) instrukcje dotyczące uruchamiania aplikacji za pomocą FastCGI i nie będziesz musiał w tym procesie uszkodzić pliku Gemfile:

Http://wiki.dreamhost.com/Rails_3#Using_FastCGI

 1
Author: KurtPreston,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-05-04 19:24:47

Może warto to sprawdzić. Ktoś wymyślił sposób na pracę debuggera z Passenger & Rails 3 - http://duckpunching.com/passenger-mod_rails-for-development-now-with-debugger

 0
Author: Marc,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-06-23 14:09:03