RVM no es una función, seleccionar rubíes con 'rvm use ...' no funcionará

160

Listar las versiones de ruby

console:~$ rvm list

rvm rubies

ruby-2.0.0-p481 [ i686 ]

# => - current
# =* - current && default
#  * - default

Intenta usar una versión específica de ruby

console:~$ rvm use 2.0.0

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

You need to change your terminal emulator preferences to allow login shell.
Sometimes it is required to use `/bin/bash --login` as the command.
Please visit https://rvm.io/integration/gnome-terminal/ for a example.
usuario3678471
fuente
1
¿Que estás tratando de hacer?
Pavan
¿Qué terminal usas? Establecer el shell de inicio de sesión difiere según la aplicación de terminal. Alternativamente, podría source $HOME/.profileo source $HOME/.bash_profiledonde rvm probablemente haya definido su línea de inicio.
Michael Berkowski
Necesita ejecutar su consola como un shell de inicio de sesión. que sistema tienes?
BroiSatse
Terminal Gnome el Ubuntu 12.04 lts
user3678471
44
En caso de que se pregunte cuál es la diferencia entre un shell de inicio de sesión y uno sin inicio de sesión: unix.stackexchange.com/questions/38175/…
stephenbez

Respuestas:

237

Su consola no se ejecuta como un shell de inicio de sesión y, por lo tanto, no tiene acceso a la función rvm. Si está ejecutando Ubuntu, puede:

  1. Consola abierta
  2. Seleccione Editar -> Preferencias de perfil
  3. Seleccionar pestaña: Título y comando
  4. Marque la casilla 'Ejecutar comando como un shell de inicio de sesión'
  5. Reiniciar terminal
BroiSatse
fuente
1
Lo hice pero no funcionó. El problema persiste . ¿Cómo eliminar completamente rvm?
user3678471
16
Por supuesto, necesitará lo siguiente en su ~ / .profile [[-s "$ HOME / .rvm / scripts / rvm"]] &&. "$ HOME / .rvm / scripts / rvm"
nadersoliman
3
Creo que esto podría explicarse más - "y por lo tanto no tienen acceso a la función rvm"
matanster
1
Funcionó. ¿Pero puedes notar la diferencia entre esos dos?
Krishnadas PC
66
Lo que funciona para mí en OSX es/bin/bash --login; source ~/.rvm/scripts/rvm; rvm use 2.4.0
Jayesh
116

Escribe bash --logindesde tu terminal. Y luego darrvm use 2.0.0

inquisitivo
fuente
@AdityaPednekar Entonces, a veces leer el mensaje de error / consola realmente ayuda, RVM is not a function, selecting rubies with 'rvm use ...' will not work. You need to change your terminal emulator preferences to allow login shell. Sometimes it is required to use /bin/bash --login as the command. Please visit https://rvm.io/integration/gnome-terminal/ for a example.especifica los detalles.
curioso
Sí, ayuda a darse cuenta de lo irrazonablemente complejo que es usar en rvmcomparación connvm
Jannis Ioannou
53

Parece que su rvm no carga ".bash_profile" correctamente. He hecho para arreglarlo en MAC OS X o Ubuntu 14.04 abriendo la terminal y escribiendo:

source ~/.rvm/scripts/rvm
akbarbin
fuente
41

Mi envidia es OSX Yosemite. Tuve el mismo problema ... resuelto agregando lo siguiente

1) edite y agregue la siguiente línea al archivo .bash_profile .

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

2) Reinicie el terminal e intente nuevamente el comando RVM

John Varghese
fuente
2
Puede agregar esto a ~ / .bashrc o ~ / .zshrc (si está usando zsh) también.
adridev
Si no desea o no puede reiniciar el terminal, puede ejecutarlo source ~/.bash_profiledespués de editarlo.
Andre Ravazzi
35

Si no desea eso cada vez que abra una terminal, vuelva a hacer la sugerencia anterior, solo agregue

source ~/.rvm/scripts/rvm

al final de ~/.bashrc

hhzhu
fuente
Este ayudó.
Arup Rakshit
.. y necesita un reinicio?
Gordie
16

El error se debe a que rvm no se está ejecutando como en el shell de inicio de sesión. Por lo tanto, intente el siguiente comando:

/bin/bash --login

Podrá ejecutar comandos rvm instantáneamente como shell de inicio de sesión en la terminal.

¡Gracias!

Sumit Munot
fuente
15

El mismo principio que otras respuestas, solo pensé que era más rápido que volver a abrir terminales :)

bash -l -c "rvm use 2.0.0"
Vigintas Labakojis
fuente
Alguien debería encontrar una mejor respuesta que todas estas. Este es el único elemento en todas las respuestas a esta pregunta que funciona para mí, pero esto no es algo que quiera hacer todo el tiempo. Estoy en Mac OSX Sierra
djangofan
9

Necesitas agregar source ~/.rvm/scripts/rvma ~/.your_shellrc file. A partir de ahora, cuando cargue un shell, se cargará rvm.

Por ejemplo:

si está utilizando zsh shell, debe agregar el ~/.zshrcarchivo

si está utilizando bash shell, debe agregar el ~/.bashrcarchivo

Y luego abra una nueva pestaña para ver el efecto.

Siva Praveen
fuente
7

Para mí en Ubuntu (18.08), he agregado la siguiente línea en .bashrc y funciona.

 source /home/username/.rvm/scripts/rvm

Por favor agregue esta línea.

Arjun
fuente
1
¡Gracias! ¡Esto funcionó para mí en MacOS! Como sugerencia, creo que es mejor usar ~para referirse a la ruta de inicio del usuario: source ~/.rvm/scripts/rvm:-)
Giovanni Benussi
2

Desde una nueva instalación de Ubuntu 16.04

1) Terminal => Editar => Preferencias de perfil

2) Pestaña Comando => Comprobar comando Ejecutar como shell de inicio de sesión

3) Cerrar y volver a abrir el terminal

rvm --default use 2.2.4
WiredIn
fuente
0

FWIW- También me encontré con esto, fue en el contexto de una carrera de selenio cancelada. Tal vez hubo una sub-capa siendo instanciada y dejada en su lugar. Cerrar esa ventana de terminal y abrir una nueva era todo lo que necesitaba hacer. (macOS Sierra)

usuario8099101
fuente