Estoy configurando la aplicación Rails 4 con Ruby 2.0, pero obtengo "No se pudo iniciar la aplicación web" 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
es:
Bundler version 1.3.5
ruby -v
es:
ruby 2.0.0p247 (2013-06-27 revision 41674) [x86_64-linux]
gem env
es:
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
es:
/usr/lib/ruby/gems/1.8:/usr/lib/ruby/gems/1.8
No debe GEM_PATH
ser /usr/lib/ruby/gems/2.0
?
Dentro del host virtual en apache2.conf agregué:
SetEnv GEM_HOME /usr/lib/ruby/gems/1.8
Y ahora está funcionando.
¿Es la forma correcta de arreglar esto?
fuente
sudo
realmente necesario? Solía,sudo
pero ahora me pregunto qué habría pasado si no lo hubiera hecho.sudo
!sudo gem ....
instalará ladefault
versión de la gema y (en mi caso, Ubuntu 14.04)sudo
no puede ejecutar rvm.sudo
el ruby predeterminado del sistema, pero no lo necesitaba para ninguna versión de ruby que instalé con rvm.gem 2.7.6
yruby 2.5.0p0
¿qué hacer?Lo más probable es que tenga más de un Ruby instalado.
Si está utilizando RVM, probablemente necesite ejecutar:
configurar la versión de ruby para usar.
Ver http://rvm.io/rubies/default
le dirá la versión que está utilizando actualmente.
fuente
Puedes intentar ejecutar:
Como @Dinesh mencionó en Rails 5:
fuente
En mi caso, las líneas adjuntas al archivo de configuración de apache después de instalar el pasajero fueron las siguientes:
Pero la aplicación requiere Ruby 2.0.0, así que me tomó un tiempo, pero finalmente, el error se resolvió después de especificar una ruta diferente usando 'PassengerRuby' a continuación, dentro del archivo de configuración de host virtual de Apache para la aplicación:
fuente
PassengerDefaultRuby
se refería a una antigua instalación de rubí.Recibí este error en una nueva aplicación Rails con el paquete instalado correctamente. Al comentar la gema de primavera en Gemfile se resolvió el problema.
fuente
gem install spring
lugar de comentar.Me encontré con el mismo problema, pero creo que se debió al
spring
almacenamiento en caché de algunas gemas y configuraciones. Lo arreglé corriendogem pristine --all
.Esto restaura las gemas instaladas a su estado original de los archivos ubicados en el caché de gemas.
o simplemente puedes probar tu gema como
fuente
Esto estaba sucediendo en el entorno de producción para mí.
rm /vendor/bundle
luego
bundle install --deployment
resuelto el problema.
fuente
Otra situación posible: tiene múltiples usuarios definidos en su entorno de servidor. En ese caso, corriendo
le dará el comando necesario para especificar su
nginx/sites-enabled/relevant_application
archivo con su caso de uso, por ejemplo:fuente
Tuve el mismo problema y probé todas las respuestas sin suerte.
pasos que hice para reproducir:
rvm instal 2.1.10
rvm gemset create my_gemset
rvm use 2.1.10@my_gemset
bundle install
Sin embargo
bundle install
instalado Rails, pero todavía tengocannot load such file -- bundler/setup (LoadError)
finalmente corriendo lo
gem install rails -v 4.2
arreglófuente
La versión del paquete puede causar el problema.
Instale el paquete con otro número de versión.
Por ejemplo,
gem install bundler -v 1.0.10
fuente
gem uninstall -a bundler; gem install bundler -v '<2.0'
.Tuve esto porque algo malo estaba en mi
vendor/bundle
. Nada que ver con Apache, solo en el entorno de desarrollo local.Para solucionarlo, eliminé
vendor\bundle
y también eliminé la referencia a él en mi.bundle/config
para que no se reutilice.Luego, volví a empaquetar (que luego instalé en
GEM_HOME
lugar devendor/bundle
y el problema desapareció).fuente
NOTA: Mi empresa de alojamiento es Site5.com y tengo un VPS administrado.
Agregué 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 hosts. Recibió este error después de tocar el archivo restart.txt para reiniciar el servidor de pasajeros.
Consiguió GEM_PATH por:
echo $ GEM_PATH
Obtuve el GEM_HOME por:
joya env
Archivo .htaccess actualizado con las siguientes líneas:
fuente
Para mí, el problema era asociar RVM Ruby con Passenger. Entonces necesitaba integrar RVM ruby wrapper al archivo de configuración del pasajero.
Encuentro la ruta rvm ruby wrapper con el comando:
Tomé la ruta del resultado e ingresé a una configuración de pasajero en
nginx/passenger.conf
:fuente
He solucionado ese problema creando un proyecto de rieles de prueba e instalando todas las gemas, luego he reemplazado mi Gemfile.lock actual con la prueba y todo funciona bien.
Creo que este problema se debe a las
bundler
versiones con alojamiento, así que asegúrese de que el paquete de alojamiento sea la misma versión con su proyecto.fuente
En mi situación, era cuestión de permisos:
fuente
La versión de ruby que se usó phusion passenger se diferencia con su aplicación de rieles.
Asegúrese de que la versión en httpd config sea la misma con la aplicación rails.
fuente