nie można załadować takiego pliku-bundler / setup ( LoadError)

Ustawiam aplikację Rails 4 za pomocą Ruby 2.0, ale dostaję "nie można uruchomić aplikacji webowej" i otrzymuję ten ślad:

cannot load such file -- bundler/setup (LoadError)
  /usr/local/lib/ruby/site_ruby/2.0.0/rubygems/core_ext/kernel_require.rb:53:in `require'
  /usr/local/lib/ruby/site_ruby/2.0.0/rubygems/core_ext/kernel_require.rb:53:in `require'
  /usr/lib/ruby/gems/1.8/gems/passenger-4.0.19/lib/phusion_passenger/loader_shared_helpers.rb:212:in `run_load_path_setup_code'
  /usr/lib/ruby/gems/1.8/gems/passenger-4.0.19/helper-scripts/rack-preloader.rb:96:in `preload_app'
  /usr/lib/ruby/gems/1.8/gems/passenger-4.0.19/helper-scripts/rack-preloader.rb:150:in `<module:App>'
  /usr/lib/ruby/gems/1.8/gems/passenger-4.0.19/helper-scripts/rack-preloader.rb:29:in `<module:PhusionPassenger>'
  /usr/lib/ruby/gems/1.8/gems/passenger-4.0.19/helper-scripts/rack-preloader.rb:28:in `<main>'
Mój apache2.conf to:
LoadModule passenger_module /usr/lib/ruby/gems/1.8/gems/passenger-4.0.19/buildout/apache2/mod_passenger.so
   PassengerRoot /usr/lib/ruby/gems/1.8/gems/passenger-4.0.19
   PassengerDefaultRuby /usr/local/bin/ruby

bundle -v jest:

Bundler version 1.3.5

ruby -v jest:

ruby 2.0.0p247 (2013-06-27 revision 41674) [x86_64-linux]

gem env jest:

RubyGems Environment:
  - RUBYGEMS VERSION: 2.1.5
  - RUBY VERSION: 2.0.0 (2013-06-27 patchlevel 247) [x86_64-linux]
  - INSTALLATION DIRECTORY: /usr/lib/ruby/gems/1.8
  - RUBY EXECUTABLE: /usr/local/bin/ruby
  - EXECUTABLE DIRECTORY: /usr/lib/ruby/gems/1.8/bin
  - SPEC CACHE DIRECTORY: /root/.gem/specs
  - RUBYGEMS PLATFORMS:
    - ruby
    - x86_64-linux
  - GEM PATHS:
     - /usr/lib/ruby/gems/1.8
  - GEM CONFIGURATION:
     - :update_sources => true
     - :verbose => true
     - :backtrace => false
     - :bulk_threshold => 1000
  - REMOTE SOURCES:
     - https://rubygems.org/
  - SHELL PATH:
     - /root/.gems/bin
     - /usr/lib/ruby/gems/1.8/bin/
     - /usr/local/bin
     - /usr/bin
     - /bin
     - /usr/bin/X11
     - /usr/games
     - /usr/sbin
     - /sbin

echo $GEM_PATH jest:

/usr/lib/ruby/gems/1.8:/usr/lib/ruby/gems/1.8

Nie powinno GEM_PATH być /usr/lib/ruby/gems/2.0?

Zapraszamy do zapoznania się z naszą ofertą.conf i dodał:
SetEnv GEM_HOME /usr/lib/ruby/gems/1.8

I teraz to działa.

Czy to dobry sposób, aby to naprawić?

Author: the Tin Man, 2013-09-28

10 answers

Możliwe, że przed instalacją 2.0 w Twoim systemie był zainstalowany poprzedni Ruby env? Mogło to mieć istniejącą GEM_PATH, która prowadzi do katalogu /1.8, który po prostu zachowała instalacja wersji 2.0.

Problem, w którym prawdopodobnie miałeś, polegał na tym, że Passenger / Apache szukał w katalogu /2.0, podczas gdy w rzeczywistości klejnoty były w katalogu /1.8. Twoje jawne powiedzenie apache ' owi, aby używał katalogu /1.8 ma więc sens, aby naprawić problem.

SetEnv GEM_HOME /usr/lib/ruby/gems/1.8

Możesz również spróbować użyć Ruby Version Manager do obsługi wielu środowisk Ruby.

Niektóre rzeczy znalazłem w Google:

 43
Author: robmclarty,
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
2017-05-23 12:26:27

Miałem prawie dokładnie ten sam błąd i byłem w stanie całkowicie go naprawić po prostu uruchamiając:

gem install bundler

Możliwe, że Twoja instalacja bundlera jest uszkodzona lub zaginęła - tak było w moim przypadku. Zauważ, że jeśli powyższe nie powiedzie się, możesz spróbować:

sudo gem install bundler

...ale ogólnie można to zrobić bez sudo.

 147
Author: Andrew Faulkner,
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
2016-07-04 17:42:21

Najprawdopodobniej masz zainstalowany więcej niż jeden Ruby.

Jeśli używasz RVM, prawdopodobnie musisz uruchomić:

rvm use system

Aby ustawić wersję Rubiego do użycia.

Zobacz http://rvm.io/rubies/default

ruby -v

Powie Ci wersję, której aktualnie używasz.

 24
Author: Michael Guild,
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
2015-11-18 20:14:52

Możesz spróbować uruchomić:

bundle exec rake rails:update:bin

Jak wspomniał @ Dinesh w Rails 5:

rails app:update:bin
 19
Author: zolter,
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
2016-08-10 11:28:16

W moim przypadku linie dołączone do pliku konfiguracyjnego apache po zainstalowaniu passenger były następujące:

LoadModule passenger_module /usr/lib/ruby/gems/1.8/gems/passenger-.0.24/buildout/apache2/mod_passenger.so 
PassengerRoot /usr/lib/ruby/gems/1.8/gems/passenger-4.0.24 
PassengerDefaultRuby /usr/bin/ruby1.8

Ale aplikacja wymaga Rubiego 2.0.0, więc zajęło mi to trochę czasu, ale w końcu błąd został rozwiązany po określeniu innej ścieżki używając 'PassengerRuby' poniżej, w pliku konfiguracyjnym Apache virtual host dla aplikacji:

...
VirtualHost *:80>
  ServerName www.yourhost.com

 **PassengerRuby /home/user/.rvm/gems/ruby-2.0.0-p247**
  # !!! Be sure to point DocumentRoot to 'public'!
  DocumentRoot /somewhere/public    
  <Directory /somewhere/public>
     # This relaxes Apache security settings.
     AllowOverride all
     # MultiViews must be turned off.
     Options -MultiViews
  </Directory>
</VirtualHost...
 9
Author: user2997993,
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
2015-11-18 20:13:32

Dostałem ten błąd w aplikacji fresh Rails z poprawnie zainstalowanym pakietem. Komentowanie wiosennego klejnotu w Gemfile rozwiązało problem.

 7
Author: nachbar,
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
2015-02-21 06:44:51

Miałem to, ponieważ coś złego było w moim vendor/bundle. Nie ma nic wspólnego z Apache, tylko w lokalnym dev env.

Aby naprawić, usunąłem vendor\bundle, a także usunąłem odniesienie do niego w moim .bundle/config, aby nie został ponownie użyty.

Następnie ponownie spakowałem (który następnie zainstalowałem do GEM_HOME zamiast vendor/bundle i problem zniknął.

 0
Author: thewoolleyman,
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
2016-02-25 05:39:34

Uwaga: moja firma hostingowa jest Site5.com i mam zarządzany VPS.

Dodałem zmienne env dla GEM_HOME i GEM_PATH do .plik htaccess w katalogu my public_html (alias do katalogu publicznego w aplikacji rails)

Wcześniej nie były potrzebne, więc coś musiało się zmienić po stronie gospodarzy. Ma ten błąd po dotknięciu restartu.plik txt do ponownego uruchomienia serwera pasażera.

Got GEM_PATH by:

Echo $GEM_PATH

Got GEM_HOME by:

Gem env

 RubyGems Environment:
   - RUBYGEMS VERSION: 2.0.14
   - RUBY VERSION: 2.0.0 (2013-11-22 patchlevel 353) [x86_64-linux]
   - INSTALLATION DIRECTORY: /home/username/ruby/gems
   - RUBY EXECUTABLE: /usr/local/ruby20/bin/ruby
   - EXECUTABLE DIRECTORY: /home/username/ruby/gems/bin
   - RUBYGEMS PLATFORMS:
     - ruby
     - x86_64-linux
   - GEM PATHS:
      - /home/username/ruby/gems
      - /usr/local/ruby2.0/lib64/ruby/gems/
   - GEM CONFIGURATION:
      - :update_sources => true
      - :verbose => true
      - :backtrace => false
      - :bulk_threshold => 1000
      - "gem" => "--remote --gen-rdoc --run-tests"
      **- "gemhome" => "/home/username/ruby/gems"**
      - "gempath" => ["/home/username/ruby/gems", "/usr/local/ruby2.0/lib64/ruby/gems/"]
      - "rdoc" => "--inline-source --line-numbers"
   - REMOTE SOURCES:
      - https://rubygems.org/

Aktualizacja .plik htaccess z następującymi wierszami:

SetEnv GEM_HOME /usr/local/ruby2.0/lib64/ruby/gems/
SetEnv GEM_PATH /home/username/ruby/gems:/usr/local/ruby20/lib64/ruby/gems/:/home/username/ruby/gems:/usr/
 0
Author: Rob Little,
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
2017-02-16 03:30:30

Dla mnie problemem było powiązanie RVM Ruby z pasażerem. Więc musiałem zintegrować RVM ruby wrapper do pliku konfiguracyjnego pasażera.

Znajduję ścieżkę RVM Ruby wrapper poleceniem:

passenger-config --ruby-command

Wziąłem ścieżkę z wyniku i wprowadziłem do konfiguracji pasażera w nginx/passenger.conf:

passenger_root /usr/lib/ruby/vendor_ruby/phusion_passenger/locations.ini;
passenger_ruby /usr/local/rvm/gems/ruby-2.3.1/wrappers/ruby;
 0
Author: Gediminas,
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
2017-03-25 14:28:55

Natknąłem się na ten sam problem, ale myślę, że było to spowodowane spring buforowaniem niektórych klejnotów i konfiguracji. Naprawiłem to uruchamiając gem pristine --all.

To przywraca zainstalowane klejnoty do nieskazitelnego stanu z plików znajdujących się w pamięci podręcznej klejnotów.

 0
Author: NM Pennypacker,
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
2018-06-11 12:04:27