rvm conflit con sqlite3

$: /Users/dev/.rvm/gems/ruby-1.9.2-head@rails3/gems/sqlite3-ruby-1.3.1/lib/sqlite3/sqlite3_native.bundle: [BUG] Segmentation fault ruby ​​1.8.7 ( 2009-06-12 patchlevel 174) [universal-darwin10.0]

Abort trap 

Parece que ruby ​​no es la versión correcta (1.8.7) pero:

 $: ruby - v $: ruby 1.9.2dev (2010-07-15 revision 28653) [x86_64-darwin10.4.0] $: gem list *** LOCAL GEMS *** abstract (1.0.0) actionmailer (3.0.0.beta4, 3.0.0.beta3) actionpack (3.0.0.beta4, 3.0.0.beta3) activemodel (3.0.0.beta4, 3.0.0.beta3) activerecord (3.0.0.beta4, 3.0.0.beta3) activeresource (3.0.0.beta4, 3.0.0.beta3) activesupport (3.0.0.beta4, 3.0.0.beta3) arel (0.4.0, 0.3.3) builder (2.1.2) bundler (0.9.26) erubis (2.6.6) i18n (0.4.1, 0.3.7) mail (2.2.5) memcache-client (1.8.5) mime-types (1.16) polyglot (0.3.1) rack (1.1.0) rack-mount (0.6.9) rack-test (0.5.4) rails (3.0.0.beta4, 3.0.0.beta3) railties (3.0.0.beta4, 3.0.0.beta3) rake (0.8.7) rdoc (2.5.9) sqlite3-ruby (1.3.1) text-format (1.0.0) text-hyphen (1.0.0) thor (0.13.8) treetop (1.4.8) tzinfo (0.3.22) will_paginate (3.0.pre) 

más información :

 $: ~ dev$ ruby -v ruby 1.9.2dev (2010-07-15 revision 28653) [x86_64-darwin10.4.0] $ :~ dev$ rails -v /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/rubygems.rb:827:in `report_activate_error': Could not find RubyGem rails (>= 0) (Gem::LoadError) from /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/rubygems.rb:261:in `activate' from /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/rubygems.rb:68:in `gem' from /usr/bin/rails:18 

Algunas ideas ?

Muchas gracias 🙂

No sé cómo sucedió esto en su caso, pero me parece que Rails ha intentado ejecutarse con su sistema instalado Ruby pero está cargando gems desde una ruta de carga de 1.9.2. Muy raro.

Verá la versión correcta de Ruby en su shell (RVM tiene prioridad en la ruta local) pero aparentemente no es con lo que se está iniciando Rails.

Comprueba cómo estás iniciando Rails y que no tienes rutas, enlaces o alias desordenados entre las versiones de Ruby

Tuvo el mismo problema después de pasar a 1.9.2p0, pero reiniciar la consola en Snow Leopard hizo el truco. Parece rvm podría haberse confundido.

El mismo problema para mí en Snow Leopard; A pesar de que bajo rvm 1.9.2@rails3, puedo ver el número de versión correcto de los Rails.

Tengo que usar el siguiente comando para usar el comando Rails:

ruby which rails g scaffold User name:string bio:text

¿Alguna solución?

Finalmente he encontrado la razón. Parece que gem install rails no se manejan para instalar el binario adecuado para Rails en rvm. Y los rails siguen siendo referencias /usr/bin/rails , que tienen un #! punto de línea al sistema ruby.

Puedes verlo con:

 head -1 `which rails` 

que devuelve:

 #!/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby 

Cambie eso a

 #!/usr/bin/env ruby 

Arreglará el problema. No sé si este problema afecta a otras instalaciones de gems de scripts ejecutables, pero por qué no instalar garriles en la propia ruta de bin de rvm es un misterio para mí. De todos modos, esta solución hace el sucio para mí.

Tuve el mismo problema al usar ree-1.8.7-2011.03. (Ruby Enterprise Edition)

Desinstalé las gems sqlite3 luego corrí:

 gem install sqlite3 

Y funcionó. Tenga en cuenta que la gem sqlite3-ruby ahora recomienda usar ‘sqlite3’ ahora.

Puede que necesites correr

 rvm reload 

El mismo problema después de un montón de actualizaciones (rvm a 1.5.2 y ruby ​​a 1.9.2-p180)

El reinicio de la consola no me funcionó, la actualización a rails 3.0.6 cambió el error a un error seg de mysql2 en lugar de sqlite3, la reinstalación de mysql2 hizo el truco finalmente.

Saludos Michael

Encontré este error exacto en zsh y MacVim , y finalmente lo MacVim hasta este problema de RVM. La solución fue mover la fuente RVM que tenía en .zshrc a .zshenv . Trabajó de inmediato. Solo publicando en la remota posibilidad de que alguien tropiece con esto como lo hice yo.

Hay un problema conocido con zsh, rvm y vim.

La última solución es configurar el shell a sh. En tu .vimrc

 set shell=sh 

Este blog tiene todas las soluciones listadas.