Cómo quitar RVM (Ruby Version Manager) de mi sistema

575

¿Cómo puedo eliminar RVM (Ruby Version Manager) de mi sistema?

lucianosousa
fuente
99
No estoy seguro acerca de sus intenciones de eliminar rvm, podría ser su 'intromisión', pero rbenves una alternativa que vale la pena. Aún puede administrar múltiples versiones de Ruby en su sistema, pero no anula los comandos de shell, no administra gemas ( Bundler es más que suficiente) y no necesita cargarse en el shell.
Jochem Schulenklopper

Respuestas:

923

Hay un comando simple incorporado que lo extraerá:

rvm implode

Esto eliminará el rvm/directorio y todos los rubíes creados dentro de él. Para eliminar el rastro final de rvm, también debe eliminar la gema rvm:

gem uninstall rvm

Si ha realizado modificaciones en su, PATHes posible que también desee realizarlas. Verifique su .bashrc, .profiley .bash_profilearchivos, entre otras cosas.

También puede tener un /etc/rvmrcarchivo, o uno en su directorio de inicio ~/.rvmrcque también deba eliminarse.

tadman
fuente
21
+1 por notar la configuración del perfil y la desinstalación de gemas, si no escuchaste a Wayne en primer lugar y lo instalaste como gema. :)
Jed Schneider
77
Si, como yo, tiene configurado rvm en el pasajero, asegúrese de reinstalarlo también.
Berkes
44
Puede interrumpirlo temporalmente hasta que cree un nuevo shell, ya que así es como se bashcomportan cosas cuando saca los ejecutables del PATH.
tadman
14
También tuve una referencia a RVM en~/.zshrc
Nate Cook
8
¿Alguien más siente que desinstalar rvm debería ser más fácil que esto? Buena salsa.
mycargus
56

Si las otras respuestas no eliminan RVM lo suficiente, la página de solución de problemas de RVM contiene esta sección:

¿Cómo limpio completamente todos los rastros de RVM de mi sistema, incluso para las instalaciones de todo el sistema?

Aquí hay un script personalizado que denominamos como cleanout-rvm. Si bien definitivamente puede usarlo rvm implodecomo usuario habitual o rvmsudo rvm implodepara una instalación en todo el sistema, este script es útil ya que se sale completamente de RVM y limpia RVM sin usar RVM en sí mismo, sin dejar rastros.

#!/bin/bash
/usr/bin/sudo rm -rf $HOME/.rvm $HOME/.rvmrc /etc/rvmrc /etc/profile.d/rvm.sh /usr/local/rvm /usr/local/bin/rvm
/usr/bin/sudo /usr/sbin/groupdel rvm
/bin/echo "RVM is removed. Please check all .bashrc|.bash_profile|.profile|.zshrc for RVM source lines and delete
or comment out if this was a Per-User installation."
Rory O'Kane
fuente
37

Al usar implodey ves:

Psychologist intervened, cancelling implosion, crisis avoided :)

Entonces es posible que desee utilizar --force

rvm implode --force

Luego, elimine RVM de las siguientes ubicaciones:

rm -rf /usr/local/rvm
sudo rm /etc/profile.d/rvm.sh
sudo rm /etc/rvmrc
sudo rm ~/.rvmrc

Verifique los siguientes archivos y elimine o comente las referencias a RVM:

~/.bashrc 
~/.bash_profile 
~/.profile 
~/.zshrc
~/.zlogin

Comente / elimine las siguientes líneas de / etc / profile:

 source /etc/profile.d/sm.sh
 source /etc/profile.d/rvm.sh

/ etc / profile es un archivo de solo lectura, así que use:

sudo vim /etc/profile

Y después de hacer el cambio, escribe usando una explosión.

:w!

Finalmente vuelva a iniciar sesión / reinicie su terminal.

Kingsley Ijomah
fuente
¿Qué hace que aparezca ese mensaje inicial?
Newbyte
1
Si RVM se instaló para un solo usuario, no debería haberse hecho usando sudoinicialmente, por lo que ninguno de sus archivos estará en las rutas /etco /usr. Sólo cuando se instaló utilizando el multi-usuario o con la sudova a ver eso, y su existencia son fuertes indicios de que la documentación de instalación RVM fue NO siguieron a instalarlo en el primer lugar.
El hombre de hojalata
17

Además de la respuesta de @ tadman, eliminé los contenedores /usr/local/biny el archivo /etc/profile.d/rvm.

Los envoltorios incluyen:

erb
gem
irb
rake
rdoc
ri
ruby
testrb
hinosx
fuente
3
Nota: es /usr/local/bin, no /user/local/bin.
bfontaine
7

Mucha gente comete un error común al pensar que 'implode rvm' lo hace. Debe eliminar todos los rastros de cualquier archivo .rm. Además, tomará algunas eliminaciones manuales de la raíz. Asegúrese de que se elimine y también todas las versiones de ruby ​​que instaló usándolo.

Codificador de cafeína
fuente
6

Elimine el script de carga RVM de /.bash_rc o /.zsh_rc, luego use:

rm -rf /.rvm

O:

rvm implode
Vishnu Atrai
fuente
2
¿Es rvm rm -rf /.rvmo rm -rf ~/.rvm?
Shbly
5

Correr:

rvm implode

Ahora necesita desinstalar la gema RVM usando:

gem uninstall rvm

Compruebe si hay archivos RVM restantes en su directorio de inicio, en caso afirmativo, elimínelos.

Vaya al directorio de inicio y enumere todos los archivos ocultos:

ls -a

rm  .rvm
rm  .rvmrc
slal
fuente
Nota: RVM no es una gema, por gem uninstall rvmlo que fallará.
El hombre de hojalata
3

Tenga en cuenta que si instaló RVM a través de apt-get, debe ejecutar algunos pasos adicionales rvm implodeo apt-get remove ruby-rvmpara que realmente se desinstale.

Consulte " Instalación de RVM en Ubuntu ".

rogerdpack
fuente
2

Si todavía recibe un mensaje env: ruby_executable_hooks: No such file or directoryal llamar a un paquete de Ruby, eso significa que RVM le dejó un pequeño regalo en su$PATH .

Ejecute lo siguiente para encontrar los scripts ofensivos:

grep '#!/usr/bin/env ruby_executable_hooks' /usr/local/bin/*

Luego rmtodos los partidos. Tendrá que reinstalar todas esas bibliotecas con un RVM libre gem, por supuesto.

marrón
fuente
2

Para otros novatos de shell que intentan arreglar la variable PATH

Después de seguir las instrucciones en la respuesta aceptada, verifique y modifique su variable PATH si es necesario:

env | grep PATH 

si ve "rvm" en cualquier lugar, debe averiguar dónde está configurando PATH y modificar. Lo estaba configurando en 3 archivos, así que verifique todos los siguientes archivos:

vim .bashrc  

Elimine las líneas en el archivo que hace referencia a rvm con el comando dd. : wq para guardar y salir.
source .bashrcpara "recargar"

Repita este proceso (comenzando con el comando vim) para .profile y .bash_profile

leenyburger
fuente
Este es un excelente punto.
El hombre de hojalata
0

Según la documentación de resolución de problemas de RVM " ¿Cómo elimino completamente todos los rastros de RVM de mi sistema, incluso para las instalaciones de todo el sistema? "

Aquí hay un script personalizado que llamamos 'cleanout-rvm'. Si bien definitivamente puede usarlo rvm implodecomo usuario habitual o rvmsudo rvm implodepara una instalación en todo el sistema, este script es útil ya que se sale completamente de RVM y limpia RVM sin usar RVM en sí mismo, sin dejar rastros.

#!/bin/bash
/usr/bin/sudo rm -rf $HOME/.rvm $HOME/.rvmrc /etc/rvmrc /etc/profile.d/rvm.sh /usr/local/rvm /usr/local/bin/rvm
/usr/bin/sudo /usr/sbin/groupdel rvm
/bin/echo "RVM is removed. Please check all .bashrc|.bash_profile|.profile|.zshrc for RVM source lines and delete or comment out if this was a Per-User installation."
el hombre de hojalata
fuente
0

Estoy ejecutando Ubuntu 19.04 y seguí todas las instrucciones anteriores y algo más. Finalmente, lo que funcionó para mí fue correr

sudo apt autoremove rvm

y ahora, cuando intento reinstalar RVM, ya no existe. RVM es invasivo, por decir lo menos.

pez espada
fuente
Existen numerosos intentos de explicar cómo instalar RVM en Internet, y la mayoría están muy desactualizados y bastante equivocados porque la aplicación ha crecido mucho en los años transcurridos desde su lanzamiento. El sitio de RVM es la fuente definitiva de información sobre cómo instalarlo, eliminarlo o usarlo. Hay muchas páginas porque es una herramienta flexible, pero si sigue la instalación básica, encontrará que no es invasiva y que es bastante fácil de administrar o eliminar.
El hombre de hojalata
-1

Intenté los comandos anteriores para eliminar RVM de macOS, pero de alguna manera todavía aparecía en la ruta.

Esto es lo que hice, que funcionó:

$ open ~/.bash_profile

Agregue a su perfil de bash lo siguiente:

unset GEM_PATH
unset MY_RUBY_HOME
unset GEM_HOME

Luego, en la terminal ejecute:

$ source ~/.bash_profile
Sumi
fuente
Tiene que ser inicializado en algún lugar; greppara esas variables en su directorio de inicio y las probabilidades son buenas, descubrirá dónde. En una instalación multiusuario podrían estar en /env/bash_profile.
El hombre de hojalata
Yo usé grep. Olvidé mencionarlo. Disculpas
Sumi
Está bien editar su respuesta y modificarla para mostrar con mayor precisión lo que hizo. Recuerde, SO no se trata tanto de la solución inmediata para el OP como de las respuestas a largo plazo para otros en el futuro que buscan soluciones. La gente olvida que no se trata de un sitio web, se trata de hacer cambios positivos en el código de los programadores.
The Tin Man