2012-11-26 15 views
10

Wenn ich rails s laufen, erhalte ich:Rails Rückkehr: [BUG] Segmentation fault

/Users/adam/.rvm/gems/ruby-1.9.3-p327/gems/pg-0.13.2/lib/pg_ext.bundle: [BUG] Segmentation fault 
ruby 1.8.7 (2012-02-08 patchlevel 358) [universal-darwin12.0] 

Abort trap: 6 

Versionen:

rails -v 
Rails 3.2.1 
ruby -v 
ruby 1.9.3p327 (2012-11-10 revision 37606) [x86_64-darwin12.2.0] 

Warum in der Fehlermeldung wird die Ruby-Version erwähnt 1.8.7 wenn ich 1.9.3 verwende?

+0

Haben Sie die richtige Umgebung? Hast du 'rvm 1.9.3' benutzt? –

+0

Was ist der Output von 'which rails' und' which ruby'? –

+0

Leute, ich neu installiert nur die rvm Version 1.9.3 und jetzt funktioniert es ... – user984621

Antwort

3

Ich hatte ein ähnliches Problem, irgendetwas mit bundle exec gab einen Segmentation Fault ausgeführt wird:

~/mayapp >bundle exec rake -T 
/Users/rogermarlow/.rvm/gems/ruby-1.9.3-p327/gems/mysql2-0.3.11/lib/mysql2/mysql2.bundle: [BUG] Segmentation fault 
ruby 1.8.7 (2012-02-08 patchlevel 358) [universal-darwin11.0] 

Abort trap: 6 

ich zwei Probleme hatte (1) mit 1.9.3p327 statt 1.9.3p125 und (2) GEM_HOME Umgebungsvariable Zeige in ein jetzt nicht vorhandenes Verzeichnis. So ist die Lösung für mich war:

~/myapp >rvm list 

rvm rubies 

=* ruby-1.9.3-p327 [ x86_64 ] 

# => - current 
# =* - current && default 
# * - default 

~/myapp >rvm install 1.9.3-p125 
**snip** 
~/myapp >rvm use 1.9.3-p125 
Using /Users/rogermarlow/.rvm/gems/ruby-1.9.3-p125 
Running /Users/rogermarlow/.rvm/hooks/after_use_maglev 
~/myapp >echo $GEM_HOME 
/Users/rogermarlow/.rvm/gems/ruby-1.9.3-p125 
~/myapp ># you should check that the directory in $GEM_HOME exists, I had [email protected] which had been removed at some point 
~/myapp >bundle install 
**snip** 

Versuchen Sie nun, dass bundle exec die Segmentierung wurde Verwerfungen ...

~/myapp >bundle exec rake -T 
rake about     # List versions of all Rails frameworks and the environment 
rake assets:clean   # Remove compiled assets 
rake assets:precompile  # Compile all the assets named in config.assets.precompile 
**snip** 
1

Ich weiß nicht, wie über Ihre Situation, ich war die Installation Rubin 1.8.7 vor um ein älteres Projekt zu testen, wechselte ich zu meinem aktuellen rails-Projektordner, wo ich eine .rvmrc-Datei habe, die mein gemset auf [email protected] setzt. Meine Rubin- und Rails-Versionen waren korrekt (1.9.3, 3.2.12), aber anscheinend versuchte Postgres irgendwie immer noch, 1.8.7 zu verwenden. und den gleichen Fehler haben, den du erwähnt hast.

Meine Lösung:

1/ cd out of the current folder project with the .rvmrc file 
2/ rvm use 1.9.3 --default 

Dann kam ich zurück zum Projekt meines aktuellen Schienen lief Bündel Update pg, nur für den Fall, ich weiß nicht, ob das wirklich eine Wirkung hatte, und voila, alles funktioniert !

12

Es ist wie Ihr pg gem gegen Rubin zusammengestellt sieht 1.8.7, wenn Sie es ursprünglich installiert. Einfach gem uninstall pg; gem install pg ausführen sollte es gegen Ruby 1.9.3 neu kompilieren.

Wenn Sie nicht bereits sind, dann würde ich mit RVM empfehlen diese Art von Problem zu vermeiden.

+0

Dank @davogones das ist mir sehr geholfen. Ich bin noch eine Weile steckengeblieben, als ich meine App zu Postgres migriert habe. Versuchte alle anderen Optionen, bis ich hier bin. Ich habe meine App von Ruby 2 nach 1.9.3 verschoben (App wurde auf rvm konfiguriert), aber immer noch den Befehl "rails db" durch die gleiche Ausnahme. Der 'bundle update' Befehl hat auch nicht geholfen. Wie du schon erwähnt hast, werde ich von dem installierten pg-Paket los und installiere es dann erneut. Danke vielmals. –