Comment supprimer RVM (Ruby Version Manager) de mon système


575

Comment puis-je supprimer RVM (Ruby Version Manager) de mon système?


9
Je ne suis pas sûr de vos intentions de suppression rvm- cela pourrait être son `` intrusion '' - mais rbenvc'est une alternative intéressante.Vous pouvez toujours gérer plusieurs versions de Ruby sur votre système, mais cela ne remplace pas les commandes shell, ne gère pas les jeux de gemmes ( Bundler est plus que suffisant) et n'a pas besoin d'être chargé dans le shell.
Jochem Schulenklopper

Réponses:


923

Il y a une simple commande intégrée qui le tirera:

rvm implode

Cela supprimera le rvm/répertoire et tous les rubis qu'il contient. Afin de supprimer la trace finale de rvm, vous devez également supprimer la gemme rvm:

gem uninstall rvm

Si vous avez apporté des modifications à votre, PATHvous pouvez également les retirer. Vérifiez , entre autres .bashrc, vos fichiers .profileet .bash_profile.

Vous pouvez également avoir un /etc/rvmrcfichier, ou un dans votre répertoire personnel, ~/.rvmrcqui devra peut-être également être supprimé.


21
+1 pour avoir noté les paramètres du profil et la désinstallation de la gemme, si vous n'avez pas écouté Wayne en premier et que vous l'avez installé comme une gemme. :)
Jed Schneider

7
Si, comme moi, vous avez configuré rvm dans passager, assurez-vous de réinstaller le passager également.
berkes

4
Il peut le casser temporairement jusqu'à ce que vous créiez un nouveau shell, car c'est ainsi que des choses comme bashse comportent lorsque vous retirez les exécutables du PATH.
tadman

14
J'ai également eu une référence à RVM dans~/.zshrc
Nate Cook

8
Quelqu'un d'autre pense que la désinstallation de rvm devrait être plus facile que cela? Bonne sauce.
mycargus

56

Si les autres réponses ne suppriment pas suffisamment RVM pour vous, la page de dépannage de RVM contient cette section:

Comment nettoyer complètement toutes les traces de RVM de mon système, y compris pour les installations à l'échelle du système?

Voici un script personnalisé que nous nommons cleanout-rvm. Bien que vous puissiez certainement l'utiliser en rvm implodetant qu'utilisateur normal ou rvmsudo rvm implodepour une installation à l'échelle du système, ce script est utile car il sort complètement de RVM et nettoie RVM sans utiliser RVM lui-même, ne laissant aucune trace.

#!/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."

37

Lors de l'utilisation implodeet vous voyez:

Psychologist intervened, cancelling implosion, crisis avoided :)

Ensuite, vous voudrez peut-être utiliser --force

rvm implode --force

Supprimez ensuite RVM des emplacements suivants:

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

Vérifiez les fichiers suivants et supprimez ou commentez les références à RVM:

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

Mettez en commentaire / supprimez les lignes suivantes de / etc / profile:

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

/ etc / profile est un fichier en lecture seule, utilisez donc:

sudo vim /etc/profile

Et après avoir fait le changement, écrivez en utilisant un bang!

:w!

Enfin reconnectez / redémarrez votre terminal.


Qu'est-ce qui fait apparaître ce message initial?
Newbyte

1
Si RVM a été installé pour un seul utilisateur, cela n'aurait pas dû être fait en utilisant sudoinitialement, donc aucun de ses fichiers ne sera dans les chemins /etcou /usr. Ce n'est que lorsqu'il a été installé à l'aide du multi-utilisateur ou avec sudovous le verrez, et leur existence est un indice fort que la documentation d'installation de RVM n'a PAS été suivie pour l'installer en premier lieu.
The Tin Man

17

En plus de la réponse de @ tadman, j'ai supprimé les enveloppes /usr/local/binainsi que le fichier /etc/profile.d/rvm.

Les emballages comprennent:

erb
gem
irb
rake
rdoc
ri
ruby
testrb

3
Remarque: ce n'est /usr/local/binpas le cas /user/local/bin.
bfontaine

7

Beaucoup de gens font une erreur courante de penser que «imploser rvm» le fait. Vous devez supprimer toutes les traces de tous les fichiers .rm. En outre, il faudra quelques suppressions manuelles de la racine. Assurez-vous qu'il est supprimé et également toutes les versions de ruby ​​installées en l'utilisant.


6

Supprimez le script de chargement RVM de /.bash_rc ou /.zsh_rc, puis utilisez:

rm -rf /.rvm

Ou:

rvm implode

2
Est-ce rvm rm -rf /.rvmou rm -rf ~/.rvm?
décisive

5

Courir:

rvm implode

Vous devez maintenant désinstaller la gemme RVM en utilisant:

gem uninstall rvm

Vérifiez s'il reste des fichiers RVM dans votre répertoire personnel, si oui, supprimez-les.

Accédez au répertoire principal et répertoriez tous les fichiers masqués:

ls -a

rm  .rvm
rm  .rvmrc

Remarque: RVM n'est pas un joyau et gem uninstall rvméchouera.
The Tin Man


2

Si vous obtenez toujours un env: ruby_executable_hooks: No such file or directorylorsque vous appelez un package Ruby, cela signifie que RVM vous a laissé un petit cadeau dans votre $PATH.

Exécutez ce qui suit pour rechercher les scripts incriminés:

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

Ensuite, rmtous les matchs. Vous devrez gembien sûr réinstaller toutes ces bibliothèques avec un RVM-free .


2

Pour les autres débutants du shell essayant de corriger la variable PATH

Après avoir suivi les instructions de la réponse acceptée, vérifiez et modifiez votre variable PATH si nécessaire:

env | grep PATH 

si vous voyez "rvm" n'importe où, vous devez déterminer où vous définissez PATH et le modifier. Je le définissais dans 3 fichiers - alors vérifiez tous les fichiers suivants:

vim .bashrc  

Supprimez les lignes du fichier référençant rvm à l'aide de la commande dd. : wq pour enregistrer et quitter.
source .bashrc"recharger"

Répétez ce processus (en commençant par la commande vim) pour .profile et .bash_profile


C'est un excellent point.
The Tin Man

0

Selon la documentation de dépannage de RVM " Comment puis-je nettoyer complètement toutes les traces de RVM de mon système, y compris pour les installations à l'échelle du système? ":

Voici un script personnalisé que nous nommons «cleanout-rvm». Bien que vous puissiez certainement l'utiliser en rvm implodetant qu'utilisateur normal ou rvmsudo rvm implodepour une installation à l'échelle du système, ce script est utile car il sort complètement de RVM et nettoie RVM sans utiliser RVM lui-même, ne laissant aucune trace.

#!/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."

0

J'utilise Ubuntu 19.04 et j'ai suivi toutes les instructions ci-dessus, puis certaines. Enfin, ce qui a fonctionné pour moi a été de

sudo apt autoremove rvm

et maintenant, quand j'essaie de réinstaller RVM, il a disparu. La RVM est pour le moins invasive.


Il existe de nombreuses tentatives pour expliquer comment installer RVM sur Internet, et la plupart sont très obsolètes et tout à fait erronées car l'application a beaucoup évolué au fil des ans depuis sa sortie. Le site de RVM est la source définitive d'informations sur son installation, sa suppression ou son utilisation. Il y a beaucoup de pages parce que c'est un outil flexible, mais si vous suivez l'installation de base, vous verrez que ce n'est pas du tout invasif et assez facile à gérer ou à supprimer.
Le Tin Man

-1

J'ai essayé les commandes ci-dessus pour supprimer RVM de macOS, mais d'une manière ou d'une autre, il apparaissait toujours sur le chemin.

Voici ce que j'ai fait, qui a fonctionné:

$ open ~/.bash_profile

Ajoutez à votre profil bash les éléments suivants:

unset GEM_PATH
unset MY_RUBY_HOME
unset GEM_HOME

Ensuite, dans le terminal, exécutez:

$ source ~/.bash_profile

Il doit être initialisé quelque part; greppour ces variables dans votre répertoire personnel et les chances sont bonnes, vous saurez où. Dans une installation multi-utilisateurs, ils pourraient être dans /env/bash_profile.
The Tin Man

J'ai utilisé grep. J'ai oublié de mentionner. Mes excuses.
Sumi

Vous pouvez modifier votre réponse et la modifier pour montrer plus précisément ce que vous avez fait. Rappelez-vous, SO ne concerne pas la solution immédiate pour le PO autant qu'il s'agit de réponses à long terme pour d'autres personnes à l'avenir qui recherchent des solutions. Les gens oublient que ce n'est pas un site à saisir, il s'agit de faire des changements positifs dans le code des programmeurs.
The Tin Man
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.