no se puede cargar tal archivo-bundler / setup (LoadError)


Estoy configurando la aplicación Rails 4 con Ruby 2.0, pero estoy obteniendo "La aplicación Web no se pudo iniciar"y obtengo este seguimiento:

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>'

Mi apache2.conf es:

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 is:

Bundler version 1.3.5

ruby -v is:

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

gem env is:

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 is:

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

¿No debería GEM_PATH ser /usr/lib/ruby/gems/2.0?

Dentro del host virtual en apache2.conf He añadido:

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

Y ahora está funcionando.

¿Es la manera correcta de arreglar esto?

Author: the Tin Man, 2013-09-28

10 answers

¿Podría ser que hubiera un Ruby env anterior instalado en su sistema antes de la instalación de la versión 2.0? Esto podría haber tenido un GEM_PATH existente que conduce al directorio /1.8 que la instalación de la versión 2.0 simplemente mantuvo.

El problema que probablemente tenía, entonces, era que Passenger/Apache estaba buscando en el directorio /2.0 cuando en realidad las gemas estaban en el directorio /1.8. Por lo tanto, el decirle explícitamente a Apache que use el directorio /1.8 tiene sentido problema.

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

También puede intentar usar el Administrador de versiones de Ruby para manejar múltiples envs de Ruby.

Algunas cosas que encontré en 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/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-05-23 12:26:27

Tuve casi exactamente el mismo error, y pude arreglarlo completamente simplemente ejecutando:

gem install bundler

Es posible que su instalación de bundler esté dañada o desaparezca, eso es lo que sucedió en mi caso. Tenga en cuenta que si lo anterior falla, puede probar:

sudo gem install bundler

...pero generalmente puedes hacerlo sin 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/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-07-04 17:42:21

Es muy probable que tenga más de un Ruby instalado.

Si está utilizando RVM, probablemente necesite ejecutar:

rvm use system

Para establecer la versión de ruby a usar.

Véase http://rvm.io/rubies/default

ruby -v

Le dirá la versión que está utilizando actualmente.

 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/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-11-18 20:14:52

Puedes intentar ejecutar:

bundle exec rake rails:update:bin

Como @Dinesh mencionado en 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/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-08-10 11:28:16

En mi caso, las líneas anexadas al archivo de configuración de apache después de instalar passenger fueron las siguientes:

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

Pero la aplicación requiere Ruby 2.0.0 por lo que me llevó un tiempo, pero finalmente, el error se resolvió después de especificar una ruta diferente utilizando 'PassengerRuby' a continuación, dentro del archivo de configuración de Apache virtual host para la aplicación:

...
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/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-11-18 20:13:32

Recibí este error en una aplicación fresh Rails con bundle correctamente instalado. Comentar la gema de primavera en Gemfile resolvió el problema.

 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/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-02-21 06:44:51

Tuve esto porque algo malo estaba en mi vendor/bundle. Nada que ver con Apache, solo en local dev env.

Para arreglar, borré vendor\bundle, y también borré la referencia a él en mi .bundle/config para que no se reutilizara.

Entonces, re-liado (que luego se instala a GEM_HOME en lugar de vendor/bundle y el problema se fue.

 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/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-02-25 05:39:34

NOTA: Mi empresa de hosting es Site5.com y tengo un Vicepresidente.

He añadido variables env para GEM_HOME y GEM_PATH al .archivo htaccess en mi directorio public_html (un alias al directorio público en la aplicación rails)

No eran necesarios antes, por lo que algo debe haber cambiado en el lado de los anfitriones. Obtuvo este error después de tocar el reinicio.archivo txt para reiniciar el servidor de pasajeros.

Got GEM_PATH by:

Echo GEM GEM_PATH

Got the 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/

Actualizado .archivo htaccess con las siguientes líneas:

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/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-02-16 03:30:30

Para mí el problema era asociar RVM Ruby con Passenger. Así que necesitaba integrar RVM ruby wrapper a passenger config file.

Averiguo la ruta rvm ruby wrapper con el comando:

passenger-config --ruby-command

Tomé el camino del resultado y entré a una configuración de pasajero en 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/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-03-25 14:28:55

Me encontré con el mismo problema, pero creo que se debió a spring el almacenamiento en caché de algunas gemas y configuraciones. Lo arreglé ejecutando gem pristine --all.

Esto restaura las gemas instaladas a la condición prístina de los archivos ubicados en la caché de gemas.

 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/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-06-11 12:04:27