2012-11-26 14 views
10

Se corro rails s, ottengo:Rails s ritorno: [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 

Versioni:

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

Perché nel messaggio di errore menzionato la versione 1.8.7 rubino se uso 1.9.3?

+0

Avete l'ambiente corretto? Hai lanciato 'rvm use 1.9.3'? –

+0

Qual è l'output di 'which rails' e' which ruby'? –

+0

Ragazzi, ho appena reinstallato la versione 1.9.3 di rvm e ora sta funzionando ... – user984621

risposta

3

Ho avuto un problema simile, in esecuzione qualsiasi cosa con bundle exec ha dato un errore di segmentazione:

~/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 

ho avuto due problemi (1) utilizzando 1.9.3p327 invece di 1.9.3p125 e (2) l'ambiente GEM_HOME puntamento variabile in una directory ora inesistente. Così la correzione per me era:

~/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** 

Ora provare che bundle exec quale è stata la segmentazione ha un guasto ...

~/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

non so come circa la vostra situazione, stavo installando ruby ​​1.8.7 prima per testare un progetto precedente, poi sono passato alla cartella del mio progetto corrente, dove ho un file .rvmrc che imposta il mio gemset a [email protected] Le mie versioni di ruby ​​e rails erano corrette (1.9.3, 3.2.12), ma a quanto pare Postgres stava ancora cercando di usare 1.8.7. e avendo lo stesso errore che hai citato.

la mia soluzione:

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

Poi sono tornato al mio progetto rotaie corrente imbattuto pacchetto di aggiornamento pg, nel caso in cui, non so se che in realtà ha avuto alcun effetto, e voilà, tutto funziona !

12

Sembra che la tua gemma pg sia stata compilata con Ruby 1.8.7 quando l'hai installata originariamente. La semplice esecuzione di gem uninstall pg; gem install pg dovrebbe ricompilarlo con Ruby 1.9.3.

Se non lo sei già, ti consiglio di utilizzare RVM per evitare questo tipo di problema.

+0

Grazie a @davogones che è davvero aiutato. Mi sono bloccato ancora un po 'quando ho migrato la mia app su Postgres. Ho provato tutte le altre opzioni finché sono arrivato qui. Ho spostato la mia app da Ruby 2 a 1.9.3 (app configurata su rvm), ma ho comunque eseguito il comando "rails db" tramite la stessa eccezione. anche il comando 'bundle update' non è stato d'aiuto. Quindi, come hai detto, mi sono liberato dal pacchetto pg installato e poi l'ho reinstallato di nuovo. Molte grazie. –

Problemi correlati