Je configure l'application Rails 4 avec Ruby 2.0, mais j'obtiens "L'application Web n'a pas pu être démarrée" et j'obtiens cette trace:
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>'
Mon apache2.conf est:
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
est:
Bundler version 1.3.5
ruby -v
est:
ruby 2.0.0p247 (2013-06-27 revision 41674) [x86_64-linux]
gem env
est:
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
est:
/usr/lib/ruby/gems/1.8:/usr/lib/ruby/gems/1.8
Ne devrait pas l' GEM_PATH
être /usr/lib/ruby/gems/2.0
?
À l'intérieur de l'hôte virtuel dans apache2.conf, j'ai ajouté:
SetEnv GEM_HOME /usr/lib/ruby/gems/1.8
Et maintenant, cela fonctionne.
Est-ce la bonne façon de résoudre ce problème?
la source
sudo
vraiment nécessaire? Je l'ai utilisésudo
mais maintenant je me demande ce qui se serait passé si je ne l'avais pas fait.sudo
!sudo gem ....
installera ladefault
version du gem, et (dans mon cas, Ubuntu 14.04)sudo
ne peut pas exécuter rvm.sudo
du ruby par défaut du système, mais je n'en avais besoin pour aucune version de ruby que j'ai installée avec rvm.gem 2.7.6
etruby 2.5.0p0
que faire?Vous avez probablement plus d'un Ruby installé.
Si vous utilisez RVM, vous devez probablement exécuter:
pour définir la version de ruby à utiliser.
Voir http://rvm.io/rubies/default
vous indiquera la version que vous utilisez actuellement.
la source
Vous pouvez essayer d'exécuter:
Comme @Dinesh l'a mentionné dans Rails 5:
la source
Dans mon cas, les lignes ajoutées au fichier de configuration apache après l'installation de passager étaient les suivantes:
Mais l'application nécessite Ruby 2.0.0, cela m'a donc pris un certain temps, mais finalement, l'erreur a été résolue après avoir spécifié un chemin différent à l'aide de 'PassengerRuby' ci-dessous, dans le fichier de configuration de l'hôte virtuel Apache pour l'application:
la source
PassengerDefaultRuby
faisait référence à une ancienne installation de rubis.J'ai eu cette erreur dans une nouvelle application Rails avec le bundle correctement installé. Commenter le joyau du printemps dans Gemfile a résolu le problème.
la source
gem install spring
au lieu de commenter.J'ai rencontré le même problème, mais je pense que c'était dû à la
spring
mise en cache de certaines gemmes et configurations. Je l'ai réparé en courantgem pristine --all
.Cela restaure les gemmes installées en parfait état à partir des fichiers situés dans le cache de gemmes.
ou vous pouvez simplement essayer votre bijou comme
la source
Cela se passait pour moi dans l'environnement de production.
rm /vendor/bundle
puis
bundle install --deployment
résolu le problème.
la source
Autre situation possible: vous avez plusieurs utilisateurs définis dans votre environnement serveur. Dans ce cas, courir
vous donnera la commande nécessaire pour spécifier votre
nginx/sites-enabled/relevant_application
fichier avec votre cas d'utilisation, exemple:la source
J'ai eu le même problème et j'ai essayé toutes les réponses sans aucune chance.
étapes que j'ai faites pour reproduire:
rvm instal 2.1.10
rvm gemset create my_gemset
rvm use 2.1.10@my_gemset
bundle install
cependant
bundle install
installé Rails, mais j'ai toujourscannot load such file -- bundler/setup (LoadError)
enfin courir l'a
gem install rails -v 4.2
corrigéla source
La version du bundler peut être à l'origine du problème.
Veuillez installer le bundler avec un autre numéro de version.
Par exemple,
bundler d'installation gem -v 1.0.10
la source
gem uninstall -a bundler; gem install bundler -v '<2.0'
.J'avais ça parce que quelque chose de mauvais était dans mon
vendor/bundle
. Rien à voir avec Apache, juste dans l'environnement de développement local.Pour corriger, j'ai supprimé
vendor\bundle
et également supprimé la référence à celui-ci dans mon.bundle/config
afin qu'il ne soit pas réutilisé.Ensuite, j'ai ré-groupé (qui a ensuite été installé à la
GEM_HOME
place devendor/bundle
et le problème a disparu.la source
REMARQUE: Mon hébergeur est Site5.com et j'ai un VPS géré.
J'ai ajouté des variables d'environnement pour GEM_HOME et GEM_PATH au fichier .htaccess dans mon répertoire public_html (un alias vers le répertoire public dans l'application rails)
Ils n'étaient pas nécessaires auparavant, donc quelque chose a dû changer du côté des hôtes. Il a obtenu cette erreur après avoir touché le fichier restart.txt pour redémarrer le serveur passager.
Obtenu GEM_PATH par:
echo $ GEM_PATH
Vous avez obtenu le GEM_HOME par:
bijou env
Fichier .htaccess mis à jour avec les lignes suivantes:
la source
Pour moi, le problème était d'associer RVM Ruby à Passenger. J'avais donc besoin d'intégrer le wrapper RVM ruby au fichier de configuration des passagers.
Je trouve le chemin du wrapper rvm ruby avec la commande:
J'ai pris le chemin du résultat et suis entré dans une configuration de passager dans
nginx/passenger.conf
:la source
J'ai résolu ce problème en créant un projet de rails de test et en installant toutes les gemmes, puis j'ai remplacé mon Gemfile.lock actuel par le test et tout fonctionne bien.
Je pense que ce problème de
bundler
versions avec hébergement, alors assurez-vous que le bundler d'hébergement est la même version que votre projet.la source
Dans ma situation, c'était une question d'autorisations:
la source
La version de la version ruby utilisée par le passager phusion est différente de celle de votre application rails.
Assurez-vous que la version sur la configuration httpd est la même avec l'application rails.
la source