2017-08-25 1 views
0

Aus Gründen, die ich nicht kontrollieren kann, muss ich eine App von Rails 4 auf CentOS 7 laufen. Momentan läuft es erfolgreich auf einem Red Hat mit rvm und Passenger. Ich würde es gerne zu rbenv und Puma migrieren, aber ich stecke mit diesem Problem fest.Warum kann Puma Bundler nicht laden, wenn ein Benutzer, der Puma-Prozess besitzt, es kann?

Ich versuche, eine Testinstallation auf einer virtuellen VirtualBox-Maschine auszuführen. Ich glaube, ich habe alles richtig miteinander verkabelt. Ich habe SELinux deaktiviert. Wenn ich cap deploy laufen beginnt Puma erfolgreich:

04:03 puma:start 
     using conf file /var/www/rails-app/shared/puma.rb 
     01 bundle exec puma -C /var/www/rails-app/shared/puma.rb --daemon 
     01 * Pruning Bundler environment 
     01 [6464] Puma starting in cluster mode... 
     01 [6464] * Version 3.9.1 (ruby 2.1.10-p492), codename: Private Caller 
     01 [6464] * Min threads: 4, max threads: 16 
     01 [6464] * Environment: vm 
     01 [6464] * Process workers: 1 
     01 [6464] * Phased restart available 
     01 [6464] * Listening on unix:///var/www/rails-app/shared/tmp/sockets/puma.sock 
     01 [6464] * Daemonizing... 
    ✔ 01 [email protected] 0.537s 

Aber das Puma-Zugriffsprotokoll in einer Endlosschleife diesen Fehler spinnt:

/home/deploy/.rbenv/versions/2.1.10/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require': cannot load such file -- bundler/setup (LoadError) 
... stack trace clipped ... 

die Prozesse Listing im Zusammenhang mit meinem Puma Benutzer zeigt:

$ ps aux | grep deploy 
deploy 12645 0.0 0.2 115384 2084 pts/0 S 18:18 0:00 -bash 
deploy 18517 0.7 1.7 271344 18076 ?  Sl 18:27 0:00 puma 3.9.1 (unix:///var/www/rails-app/shared/tmp/sockets/puma.sock) 
deploy 23279 7.0 0.0  0  0 ?  Z 18:29 0:00 [ruby] <defunct> 
deploy 23283 4.0 1.7 273400 17464 ?  Rl 18:29 0:00 puma: cluster worker 0: 18517 

Ich habe bestätigt, dass ich Bundler erfolgreich als deploy Benutzer ausführen kann, der die Rails-Anwendung und den Puma-Prozess besitzt:

cd /var/www/rails-app/current && bundler --version 
Bundler version 1.15.4 

Also ich bin mir nicht sicher, warum ich diesen Fehler sehe. Nach stundenlanger Recherche und Fehlerbehebung stehe ich fest. Ich kann Konfigurationsdateien zur Verfügung stellen, wenn sie benötigt werden, aber sie sind ziemlich Standard und ich denke, würde diese Frage an dieser Stelle nur überladen.

Kommt dieses Problem jedem bekannt vor?

+0

Ihre Frage scheint diesem ähnlich zu sein https://stackoverflow.com/questions/19061774/cannot-load-such-file-bundler-setup-loaderror –

+0

Wenn Sie RVM https://stackoverflow.com/questions verwenden/32670779/loaderor-can-load-so-file-bundler-setup –

Antwort

0

Nur wenige Schritte, um diese Art von Problem zu lösen:

  1. Stellen Sie sicher, dass bundler richtig installiert ist. Sieht in Ihrem Fall wie Ja aus, aber immer noch eine gute Sache zu starten, indem Sie gem install bundler
  2. Stellen Sie sicher, dass alle Ihre Pfad ordnungsgemäß konfiguriert ist. Hier ist ein Beispiel, das auf Ihren Fall ähnlich sieht, wo bundler installiert war aber Pfad nicht korrekt war und Bündler Versionen wurden gemischt: cannot load such file -- bundler/setup (LoadError)
  3. Wenn Sie RVM verwenden Sie vielleicht einen Blick auf nehmen wollen: LoadError: cannot load such file -- bundler/setup
+0

Danke für die Vorschläge, Stephane. Es hat mein Problem nicht gelöst, aber hat ein paar neue Threads zur Verfügung gestellt. Es führte mich auch zu [dieser Frage] (https://stackoverflow.com/q/30502765/6763239), die aussieht, als könnte es relevant sein. Ich fügte 'ps aux' Ausgabe zu meiner Frage hinzu. –

+0

Tatsächlich wurde [dieser Kommentar hier] (https://stackoverflow.com/questions/30502765/puma-looks-ok-but-cycles-through-life-defunct-life-defunct-every-10-seconds#comment51274220_30502765) gedreht aus, um die Lösung für mein Problem zu sein. Nachdem ich den Besitzer von '/ var' und'/var/www' zu meinem 'deploy' Benutzer gewechselt habe, konnte Puma erfolgreich laufen. @ stephane-paquet, wenn du das am Anfang deiner Antwort hinzufügen möchtest, wähle ich deine Antwort als die richtige und füge dann meine eigene Antwort mit den Details hinzu. Danke nochmal für deine Hilfe. –

Verwandte Themen