2011-06-17 15 views
8

He instalado RVM junto con las versiones de ruby. Sin embargo si el fuego de la consola y ejecutar el servidor de comando rieles, paquete de instalación, etc. consigo este errorRVM finding system gems 'executables

bash: /usr/bin/rails: /usr/bin/ruby1.8: bad interpreter: No such file or directory 

Pero si me quedo rvm use 1.9.2 primero, entonces todo está bien. Intenté usar `rvm use --default 1.9.2 'pero nada cambió. ¿Esto significa que usa un rubí diferente de los que están en RVM? ¡Gracias por adelantado!

+0

Agregue el resultado de 'rvm info' a su pregunta editándolo. –

+0

'rvm' no instala automáticamente' carriles'. Después de instalar un intérprete de Ruby específico, debe instalar las gemas que desee (incluidos 'rails') para ese intérprete. El problema parece ser que instaló 1.9.2 y lo configuró como predeterminado, pero nunca instaló 'carriles' para ese intérprete. – Telemachus

Respuesta

17

Explicación de RubyGems carpetas bin y PATH

Oh. No tenías los rieles instalados en tu rvm ruby, pero lo hiciste en el ruby ​​de tu sistema.

Las gemas individuales, como rails pueden tener un directorio bin que contendrá scripts de ayudantes ejecutables. Los rubygems por defecto de su sistema están haciendo enlaces simbólicos desde su sistema/usr/bin/dir a la carpeta bin de la joya para estos ejecutables auxiliares.

RVM ofrece una instalación similar, excepto que en lugar de contaminar el sistema de dir/usr/bin, sólo se añade su carpeta~/.rvm/gems/#{rvm_gemset_string}/bin a la variable de entorno PATH.


Importación sistema de listas Rubygems en directorios joya nuevos RVM rubíes

RVM por defecto no importará sus gemas de la instalación de sistema de rubí en su rubí RVM instala. Hace una bifurcación completa y limpia de todo el sistema de rubíes, incluidos los rubígemas (gema 'rubygems') y la gema de rubíes. Cuando rvm install 1.9.2 es como si hubiera hecho una instalación completamente nueva de todo lo que se usa con ruby.

Si desea obtener todas las gemas de rubí sistema que estaba utilizando anteriormente en su rubí RVM preferido, intente esto:

rvm use system 
    rvm gemset export system.gems 
    rvm use 1.9.2 
    rvm gemset import system.gems 
    #You'll now have all your system gems reinstalled to your new ruby version 

respuesta original/ediciones de @Telemachus

trate de mover las líneas de esa fuente de RVM al final de su ~/.bash_profile o ~/.bashrc (lo que lo tienes en):

'[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm" # Load RVM function' 

.

bash: /usr/bin/rails: /usr/bin/ruby1.8: bad interpreter: No such file ... 
|     |     ^--------------------------------\ 
^ Bash, not rvm; ^/usr/bin/rails, not ~/.rvm/gems/*/bin/rails;  | 
         Some ruby leftover from a previous install in the os 

Usted tiene raíles instalados en /usr/bin, que es, probablemente, antes de la ruta bin RVM rubí en su variable de fiesta echo $PATH, por lo que es encontrar el sistema de rieles de instalación (/ usr/bin/rieles, un guión rubí) que comienza de esta manera:

#! /usr/bin/ruby18

tienes que hacen detener el conflicto sucediendo, la mejor de todas las formas posibles es asegurarse de que bin dir de RVM está al principio de su PATH.Esto sucede en el script #Load rvm environment que agregó a su ~/.bash_profile al instalar rvm. Si instaló rvm como una biblioteca de sistema en lugar de solo para su usuario, esto será diferente.

Si llega a ese caso, pregunte a @Telemachus.

A continuación, deberá asegurarse de que ha instalado la gema de rieles en su nuevo rvm ruby ​​como se indica anteriormente.

de pruebas de aceptación:

Usted encontrará que cuando se ha hecho rvm use 1.9.2, entonces which ruby volverá algo así como ~/.rvm/rubies/1.9.2/bin/ruby, y which rails debe devolver algo así como ~/.rvm/gems/*/bin/rails.

+0

hizo el mv, y sucede esto El programa 'carriles' no está actualmente instalado. Puede instalarlo escribiendo: sudo apt-get install rails – maru

+0

después de cambiar el nombre, lo instalé utilizando gema install rails nuevamente, y funcionó, ¡gracias! – maru

+0

Consulte la respuesta actualizada que muestra cómo copiar las gemas de su sistema en rvm. –

0

Necesita ejecutar rvm use --default 1.9.2, no solo rvm use --default.

+0

eso es lo que hice ... pero nada – maru

4

Acabo de resolver el mismo problema en Windows Vista.

Mi consola me estaba dando este mensaje:

$ rails -v 
sh: /c/RailsInstaller/Ruby1.9.2/bin/rails: C:/Projects/railsinstaller/Stage/Ruby1.9.2 /bin/ruby.exe: bad interpreter: No such file or directory 

acabo de editar la primera línea de este archivo:

C:\RailsInstaller\Ruby1.9.2\bin\rails 

e hizo que apunte a la ubicación correcta para ruby.exe, en mi sistema, como este:

#!C:\RailsInstaller\Ruby1.9.2\bin\ruby.exe 

Et voilà, problem resolved!

Cuestiones relacionadas