2010-12-16 5 views
8

Estoy tratando de poner en marcha el Rails tutorial by Michael Hartl. Pasé mucho tiempo luchando contra varias bibliotecas. Así que eliminé todo el software ruby ​​de mi sistema Ubuntu 10.4.Rails 3: Ruby 1.9.2: ¿necesita /usr/bin/ruby1.8?

Luego instalé Ruby 1.9.2.

$ ruby -v 
ruby 1.9.2dev (2010-07-02) [i486-linux] 

Hasta ahora todo bien. Luego lo hice

sudo gem install rails 

Después de un largo tiempo, terminó la instalación. Entonces me encontré con

Así que ... no tengo /usr/bin/ruby1.8 en mi sistema. ¿Cómo obtengo Rails 3.0.3 para usar mi ruby ​​en/usr/bin/ruby?

Agradezco cualquier ayuda que pueda darme.

sólo para ver si podía seguir adelante, traté

$ cd /usr/bin 
$ sudo ln -s ruby1.9.2 ruby1.8 

Esto me deja seguir adelante, pero ¿es lo que hay que hacer?

+0

¿Cuál es la salida de 'gem environment'? Específicamente el 'RUBY VERSION' y' RUBY EXECUTABLE'. – Nemo157

+0

"gem -v" rindió 1.3.7. El "ambiente de gemas" produjo RUBY VERSION: 1.9.2 (2010-07-02 patchlevel -1) [i486-linux] - DIRECTORIO DE INSTALACIÓN: /var/lib/gems/1.9.2 - RUBY EXECUTABLE:/usr/bin /ruby1.9.2 –

Respuesta

3

Tardó en probar 3 métodos diferentes para instalar y desinstalar Ruby, ¡pero finalmente lo conseguí!

Encontré un gran tutorial por Toran Billups que da algunas instrucciones geniales. Después de analizar lo que hizo, se reduce a algunos conceptos clave:

  1. Algunas bibliotecas que son independientes de la versión de Ruby deben instalarse en el sistema (usando "sudo apt-get").
  2. Use RVM para instalar Ruby en su propia cuenta. es decir, no "sudo".
  3. Usa la gema para instalar gemas en tu ambiente ruby ​​particular. (es decir, no "sudo"). Cuando configura 1.8 como el entorno Ruby, las gemas se instalan en el árbol RVM 1.8 de su entorno. Cuando establece 1.9.2 como entorno, las gemas se instalan en el árbol 1.9.2 de su entorno.

Aquí está el proceso.

  1. Elimine todos los programas Ruby (1.8.x y 1.9.2) y las bibliotecas Ruby de su sistema Ubuntu 10.4.
  2. Instalar RVM en el sistema, siguiendo las instrucciones en la RVM site(roto)RVM site.
  3. Siga Toran Billups' tutorial, comenzando en el punto donde instala Ruby 1.8.7.
  4. Siga las instrucciones en Michael Hartl's tutorial(roto)Michael Hartl's tutorial para obtener Rails 3.0 trabajando con Ruby 1.9.2, github, heroku.com, rspec, spork, y autotest.
0

Por los sonidos del mismo, Bash encuentra a ruby1.8 cuando ejecuta la línea #!/usr/bin/env ruby del script rails, aunque no exista. Pruebe /usr/bin/env which ruby para ver exactamente qué intérprete está tratando de cargar.

+0

Antes de hacer el ln -us /usr/bin/ruby1.9.2 /usr/bin/ruby1.8, no había ruby1.8. Bash no pudo encontrarlo. ¿Pero por qué bash estaría buscando /usr/bin/ruby1.8 en primer lugar? ¡Ni siquiera lo tengo instalado en mi sistema! –

+0

No estoy seguro, la parte del 'mal intérprete' del mensaje de error es lo que me hace pensar que es la línea shebang con la que está extrayendo el error. Abriendo 'bin/rails' de la carpeta de gemas de rieles tiene' #!/Usr/bin/env ruby' como su shebang así que debe usar el primer 'ruby' encontrado en su camino para intentar ejecutarlo. De alguna manera eso está devolviendo '/ usr/bin/ruby1.8' a bash. Si ejecuta '/ usr/bin/env which ruby' debe listar la ruta completa al intérprete que está buscando. – Nemo157

+1

Quizás abra '/ usr/bin/rails' y compruebe que es la primera línea. De alguna manera podría haberse cambiado a '#!/Usr/bin/ruby1.8' aunque no tengo idea de cómo pudo haber sucedido eso. – Nemo157

2

Tuve el mismo error después de instalar con RVM y abrir nuevos proyectiles. La solución fue ejecutar:

$ rvm use 1.9.2 --default 

P.S.
Estoy ejecutando Ubuntu 10.04 y después de dos días de prueba y error finalmente obtuve los rieles 3 trabajando con ruby ​​1.9.2. ¡Recomiendo usar RVM para instalar Ruby un regalo del cielo!

0

También estaba teniendo un dolor de cabeza con esto, y no quiero usar RVM en este momento.

Vi que la línea de shebang para/usr/bin/gem era #!/Usr/bin/ruby1.8 y que este era presumiblemente el problema.

Me aseguré de que/etc/alternatives apuntara a la secuencia de comandos gema correcta; esto se puede establecer con:

alternativas de actualización --config joya

Luego quité/usr/bin/joya y un enlace simbólico desde/usr/bin/joya a/etc/alternatives/joya

Resulta que la única diferencia en los guiones de gemas era la línea shebang, por lo que el cambio manual también habría funcionado.

0

Resuelto al cambiar la versión de mi Ruby actual (con RVM) a 2.0.x.

Cuando instalé los rieles (hace dos días) estaba debajo de la versión 2.0.0. Ayer cambié a 2.1.x. Hoy probé el comando de rieles y obtuve el error.

Volviendo a la versión RVM Ruby, los rieles instalados hicieron el truco.

Disculpe el mal inglés.

P.S. Usando Ubuntu 13.10

Cuestiones relacionadas