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.

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

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


@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

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


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


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!


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"

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.


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.


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

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)

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.