Como remover o RVM (Ruby Version Manager) do meu sistema

575

Como posso remover o RVM (Ruby Version Manager) do meu sistema?

lucianosousa
fonte
9
Não tenho certeza sobre suas intenções de remover rvm- pode ser a sua 'intromissão' - mas rbenvé uma alternativa interessante.Você ainda pode gerenciar várias versões do Ruby no seu sistema, mas não substitui os comandos do shell, não gerencia os gemsets ( O empacotador é mais que suficiente) e não precisa ser carregado no shell.
Jochem Schulenklopper 20/10/12

Respostas:

923

Há um comando simples embutido que o puxa:

rvm implode

Isso removerá o rvm/diretório e todos os rubis criados nele. Para remover o rastreio final do rvm, você também precisa remover a gema rvm:

gem uninstall rvm

Se você fez modificações no seu, PATHpode querer puxá-las também. Verifique se o seu .bashrc, .profilee .bash_profilearquivos, entre outras coisas.

Você também pode ter um /etc/rvmrcarquivo ou um em seu diretório pessoal ~/.rvmrcque talvez precise ser removido também.

tadman
fonte
21
+1 por observar as configurações do perfil e a desinstalação da gema, se você não ouviu Wayne em primeiro lugar e a instalou como uma gema. :)
Jed Schneider
7
Se você - como eu - tiver o rvm configurado no passageiro, certifique-se de reinstalar o passageiro também.
BERKES
4
Pode quebrá-lo temporariamente até você criar um novo shell, pois é assim que as coisas bashse comportam quando você arranca os executáveis ​​do PATH.
Tadman
14
Eu também tive uma referência a RVM em~/.zshrc
Nate Cozinhe
8
Alguém mais acha que desinstalar o rvm deve ser mais fácil do que isso? Bom molho.
Mycargus 14/05
56

Se as outras respostas não removerem o RVM o suficiente, a página de solução de problemas do RVM conterá esta seção:

Como limpo completamente todos os traços de RVM do meu sistema, inclusive para instalações em todo o sistema?

Aqui está um script personalizado que nomeamos como cleanout-rvm. Embora você possa definitivamente usar rvm implodecomo usuário comum ou rvmsudo rvm implodepara uma instalação em todo o sistema, esse script é útil, pois sai completamente do RVM e limpa o RVM sem usar o próprio RVM, sem deixar 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
fonte
37

Ao usar implodee você vê:

Psychologist intervened, cancelling implosion, crisis avoided :)

Então você pode querer usar --force

rvm implode --force

Em seguida, remova o RVM dos seguintes locais:

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

Verifique os seguintes arquivos e remova ou comente as referências ao RVM:

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

Comente / remova as seguintes linhas do / etc / profile:

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

/ etc / profile é um arquivo somente leitura, então use:

sudo vim /etc/profile

E depois de fazer a alteração, escreva usando um estrondo!

:w!

Finalmente, faça o login novamente / reinicie o seu terminal.

Kingsley Ijomah
fonte
O que faz com que essa mensagem inicial apareça?
Newbyte 6/03
1
Se o RVM foi instalado para um único usuário, isso não deveria ter sido feito sudoinicialmente, portanto, nenhum de seus arquivos estará nos caminhos /etcou /usr. Somente quando foi instalado usando o multiusuário ou com sudovocê, você verá isso, e sua existência é uma forte indicação de que a documentação de instalação do RVM NÃO foi seguida para instalá-lo em primeiro lugar.
the Tin Man
17

Além da resposta de @ tadman, removi os wrappers /usr/local/bine o arquivo/etc/profile.d/rvm .

Os wrappers incluem:

erb
gem
irb
rake
rdoc
ri
ruby
testrb
hinosx
fonte
3
Nota: é /usr/local/bin, não /user/local/bin.
bfontaine
7

Muitas pessoas cometem um erro comum ao pensar que 'rvm implode' faz isso. Você precisa excluir todos os rastreamentos de qualquer arquivo .rm. Além disso, serão necessárias algumas exclusões manuais da raiz. Certifique-se de que ele seja excluído e também de todas as versões ruby ​​instaladas usando-o.

Codificador de cafeína
fonte
6

Remova o script de carregamento do RVM de /.bash_rc ou /.zsh_rc e use:

rm -rf /.rvm

Ou:

rvm implode
Vishnu Atrai
fonte
2
É rvm rm -rf /.rvmou rm -rf ~/.rvm?
shibly
5

Corre:

rvm implode

Agora você precisa desinstalar a gema RVM usando:

gem uninstall rvm

Verifique se há algum arquivo RVM restante no diretório inicial, se sim, remova-o.

Vá para o diretório inicial e liste todos os arquivos ocultos:

ls -a

rm  .rvm
rm  .rvmrc
slal
fonte
Nota: O RVM não é uma jóia, portanto gem uninstall rvmfalhará.
the Tin Man
3

Observe que se você instalou o RVM via apt-get, precisará executar algumas etapas adicionais rvm implodeou apt-get remove ruby-rvmdesinstalá-lo.

Consulte " Instalando o RVM no Ubuntu ".

rogerdpack
fonte
2

Se você ainda está recebendo um env: ruby_executable_hooks: No such file or directorychamado ao pacote Ruby, isso significa que o RVM deixou um pequeno presente para você no seu $PATH.

Execute o seguinte para encontrar os scripts incorretos:

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

Então rmtodos os jogos. Você precisará reinstalar todas essas bibliotecas com um sem RVM gem, é claro.

chbrown
fonte
2

Para outros iniciantes do shell tentando corrigir a variável PATH

Após seguir as instruções na resposta aceita, verifique e modifique sua variável PATH, se necessário:

env | grep PATH 

se você vir "rvm" em qualquer lugar, precisará descobrir onde está configurando PATH e modificar. Eu estava configurando em três arquivos - então verifique todos os seguintes arquivos:

vim .bashrc  

Exclua as linhas no arquivo que referencia o rvm usando o comando dd. : wq para salvar e sair.
source .bashrc"recarregar"

Repita esse processo (começando com o comando vim) para .profile e .bash_profile

leenyburger
fonte
Este é um ponto excelente .
the Tin Man
0

De acordo com a documentação de solução de problemas do RVM " Como faço para limpar completamente todos os traços de RVM do meu sistema, inclusive para instalações em todo o sistema? ":

Aqui está um script personalizado que chamamos de 'cleanout-rvm'. Embora você possa definitivamente usar rvm implodecomo usuário comum ou rvmsudo rvm implodepara uma instalação em todo o sistema, esse script é útil, pois sai completamente do RVM e limpa o RVM sem usar o próprio RVM, sem deixar 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."
o homem de lata
fonte
0

Estou executando o Ubuntu 19.04 e segui todas as instruções acima e mais algumas. Finalmente, o que funcionou para mim foi executar

sudo apt autoremove rvm

e agora, quando tento reinstalar o RVM, ele se foi. O RVM é invasivo, para dizer o mínimo.

abadfish
fonte
Existem inúmeras tentativas de explicar como instalar o RVM na Internet, e a maioria está muito desatualizada e muito errada, porque o aplicativo cresceu muito nos últimos anos desde que foi lançado. O site do RVM é a fonte definitiva de informações sobre a instalação, exclusão ou uso dele. Existem muitas páginas porque é uma ferramenta flexível, mas se você seguir a instalação básica, verá que ela não é invasiva e é fácil de gerenciar ou remover.
the Tin Man
-1

Tentei os comandos acima para remover o RVM do macOS, mas de alguma forma ele ainda estava aparecendo no caminho.

Aqui está o que eu fiz, que funcionou:

$ open ~/.bash_profile

Adicione ao seu perfil do bash o seguinte:

unset GEM_PATH
unset MY_RUBY_HOME
unset GEM_HOME

Então, no terminal, execute:

$ source ~/.bash_profile
Sumi
fonte
Tem que ser inicializado em algum lugar; greppara essas variáveis ​​no diretório inicial e as chances são boas, você descobrirá onde. Em uma instalação multiusuário, eles poderiam estar /env/bash_profile.
the Tin Man
Eu usei grep. Eu esqueci de mencionar. Desculpas.
Sumi
Não há problema em editar sua resposta e alterá-la para mostrar com mais precisão o que você fez. Lembre-se de que o SO não trata da solução imediata para o OP, mas de respostas de longo prazo para outras pessoas no futuro que procuram soluções. As pessoas esquecem que não é um site fácil, mas sim fazer mudanças positivas no código dos programadores.
the Tin Man