2011-12-29 6 views
105

no soy capaz de cambiar la versión actual Ruby:¿Cómo cambio mi versión de Ruby usando RVM?

➜ ~ rvm list 

rvm rubies 

    ruby-1.9.2-p290 [ x86_64 ] 
    ruby-1.9.3-p0 [ x86_64 ] 

➜ ~ rvm use ruby-1.9.3-p0 

RVM is not a function, selecting rubies with 'rvm use ...' will not work. 
+0

¿seguro de que ha instalado correctamente RVM? qué sistema operativo está utilizando? – lesce

+2

Anexar la salida de 'info' RVM a su pregunta, por favor. –

+0

que tenía un problema similar por instalando rvm con apt-get en Ubuntu 11.10, tuve que eliminarlo y reinstalarlo con '$ bash -s estable <<(curl -s https://raw.github.com/wayneeseguin/rvm/master/binscripts/rvm -instalador) ' – lesce

Respuesta

119

arreglaron. Yo tenía que añadir:

[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm" # This loads RVM 

a .zshrc

+5

Probablemente sea un buen ejemplo de por qué necesita RTFM :) – Alexander

+1

+1 funciona en jenkins para usar múltiples versiones rvm. – Sairam

11

Su cáscara no sabe acerca de la función RVM. Después de instalarlo, le dice cómo solucionar esto. O vaya a la página install en el sitio RVM y consulte la sección titulada "Cargue RVM en sus sesiones de shell como una función"

Ejecute esto una vez para agregar la línea que carga rvm en su ~/.bash_profile:

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

o agréguelo manualmente usted mismo. (Tenga en cuenta que en algunos sistemas, querrá ponerlo en otros lugares, por ejemplo en mi sistema, Mac OSX Lion, lo puse en ~/.profile)

+0

@edwardsharp O no. –

+0

Estoy usando OS X Snow Leopard, poniendo esa línea en mi .profile hizo el truco para mí. – Heldraug

5

Para agregar toda la funcionalidad RVM a su .bash_profile debe utilizar siguiente comando:

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

Después de que se debe recargar la shell actual o abrir una nueva sesión de terminal y escriba el siguiente comando para recargar .bash_profile:

source .bash_profile 
55

Esto me pasó a mí también. Tuve:

export PATH=~/.rvm/bin:$PATH 

Agregado en mi .bashrc.

Todo lo que tenía que hacer era poner otra

[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm" 

en el mismo archivo y funcionó! Por supuesto, debe reiniciar su terminal después de eso.

+1

tenía esta misma línea (el [[-s "$ HOME/...) en mi ~/.bash_profile y eso no parecía" tomar "cuando abrí un nuevo terminal ... pero cuando agregué el línea debajo de la línea PATH en el ~/.bashrc, funcionó - es decir, podría escribir rvm use 1.9.3 e inmediatamente reconocería rvm como un comando sin necesidad de escribir primero el origen ~/.bash_profile - i No soy una persona de Linux, así que esto me confunde, pero me alegro de que haya funcionado. Tal vez alguien pueda aclarar mi confusión. – TimDog

+0

eso es genial, acabo de poner esta línea en ~/.bashrc, funciona. Pero también no sé por qué. –

+0

Sí, funciona, pero cada vez que reinicio mi máquina, tengo que dar los comandos mencionados anteriormente. Si no proporciono los comandos, dice que rvm no es una función. –

0

Tuve una instalación global de RVM, que ejecuta /etc/profile.d/rvm.sh. Sin embargo, ese script requiere que se establezca BASH_VERSION o ZSH_VERSION. Me estaba ejecutando desde crontab, que usa "sh".

Creé un script de envoltura que utiliza/bin/bash para el origen /etc/profile.d/rvm.sh.

9

(Kubuntu 11.10) El ~/.bash_profile ahora se llama ~/.profile

echo '[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm" # Load RVM function' >> ~/.profile 
source ~/.profile 
rvm info # And now the fields display 
3

sólo tenía que invocar fuente ~/.bash_profile

+0

esto resolvió el problema para mí. –

1

Instalación de RVM, Vea aquí http://octopress.org/docs/setup/rvm/

+0

No utilice fuentes no autorizadas para instalar RVM. La [página de instalación de RVM] (http: // rvm.io/rvm/install) dice específicamente: "Tenga en cuenta que los tutoriales externos NO son compatibles, funcionen o no. Los tutoriales son geniales, sin embargo, hemos gastado enormes cantidades de horas hombre depurando el proceso de instalación. Utilice el proceso de instalación.) solo desde este sitio, ya que son los únicos tipos y métodos de instalación admitidos ". –

3

en una instalación limpia de Ubuntu 12.04 I se encontró con el mismo problema. El instalador RVM crea o añade a un archivo llamado ~/.bash_login el bit necesaria de código para evitar el problema original:

[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm" # Load RVM into a shell session *as a function* 

Sin embargo, esto no parece para ser invocado. Agregarlo a ~/.bashrc resolvió el problema para mí.

+0

De hecho, necesitas esa lin en '~/.bashrc' ¡gracias! – Max

6

Para cambiar el valor predeterminado versión de rubí:

En Ubuntu 11.10
favor cambiar la configuración del terminal de GNOME:

Ir a Terminal y siga las siguientes instrucciones:

1. Edit > Profile Preferences 
2. Open Title and Command Tab    
3. Check Run Command as a login Shell 
4. Restart terminal 

Ejecute este comando en la terminal:

rvm --default use ruby_Version 
+0

como adición: https://rvm.io/integration/gnome-terminal – pvllnspk

4

La solución anterior solo funcionará, si RVM está instalado para el usuario actual. Una solución más general sería utilizar la variable de ruta RVM:

# The following code loads RVM as user or system install: 
[[ -s "$rvm_path/scripts/rvm" ]] && . "$rvm_path/scripts/rvm" 
+0

'rvm_path =/home/myuser/.rvm./home/myuser/.rvm/scripts/rvm' –

1

En mi caso en Ubuntu, la entrada en ~/.bashrc tenía:

[[ -s "$HOME/.rvm/scripts/rvm" ]] && ."$HOME/.rvm/scripts/rvm" # BAD 

en lugar de:

[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm" # WORKING 

Observe el espacio faltante entre. y "$ HOME.

Además, si este es el problema, también debe estar notando un error en la parte superior cuando se inicia el terminal.

0

Es necesario cambiar las preferencias de emulador de terminal para permitir el acceso concha. a veces es necesario para utilizar /bin/bash --login que el comando .

Cuestiones relacionadas