Jak usunąć RVM (Ruby Version Manager) z mojego systemu

575

Jak mogę usunąć RVM (Ruby Version Manager) z mojego systemu?

lucianosousa
źródło
9
Nie jestem pewien swoich zamiarów usunięcia rvm- może to być jego „natrętność” - ale rbenvjest to warta alternatywa. Nadal możesz zarządzać wieloma wersjami Ruby w systemie, ale nie zastępuje poleceń powłoki, nie zarządza zestawami gemów ( Bundler jest więcej niż wystarczający) i nie musi być ładowany do powłoki.
Jochem Schulenklopper,

Odpowiedzi:

923

Jest wbudowane proste polecenie, które je wyciągnie:

rvm implode

Spowoduje to usunięcie rvm/katalogu i wszystkich wbudowanych w nim rubinów. Aby usunąć ostatni ślad rvm, musisz również usunąć klejnot rvm:

gem uninstall rvm

Jeśli wprowadziłeś modyfikacje, PATHmożesz je również wyciągnąć. Sprawdzić .bashrc, .profilei .bash_profileplików, między innymi.

Możesz także mieć /etc/rvmrcplik lub jeden z katalogu domowego, ~/.rvmrcktóry również może wymagać usunięcia.

tadman
źródło
21
+1 za zanotowanie ustawień profilu i odinstalowanie klejnotu, jeśli nie posłuchałeś Wayne'a i nie zainstalowałeś go jako klejnotu. :)
Jed Schneider
7
Jeśli - podobnie jak ja - masz skonfigurowane wartości RVM dla pasażera, upewnij się, że później ponownie zainstalujesz pasażera.
berkes
4
Może to tymczasowo zepsuć się, dopóki nie utworzysz nowej powłoki, ponieważ tak właśnie bashzachowują się rzeczy, gdy wyciągasz pliki wykonywalne z PATH.
tadman
14
Miałem też odniesienie do RVM w~/.zshrc
Nate Cook
8
Czy ktoś jeszcze uważa, że ​​odinstalowanie rvm powinno być łatwiejsze? Dobry sos.
mykargus
56

Jeśli inne odpowiedzi nie usuwają RVM w sposób wystarczający dla Ciebie, strona Rozwiązywanie problemów RVM zawiera tę sekcję:

Jak całkowicie usunąć wszystkie ślady RVM z mojego systemu, w tym w przypadku instalacji w całym systemie?

Oto niestandardowy skrypt, który nazywamy jako cleanout-rvm. Chociaż zdecydowanie można go używać rvm implodejako zwykłego użytkownika lub rvmsudo rvm implodedo instalacji całego systemu, skrypt ten jest użyteczny, ponieważ całkowicie wykracza poza RVM i czyści RVM bez korzystania z samego RVM, nie pozostawiając żadnych śladów.

#!/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
źródło
37

Podczas używania implodezobaczysz:

Psychologist intervened, cancelling implosion, crisis avoided :)

Następnie możesz użyć --force

rvm implode --force

Następnie usuń RVM z następujących lokalizacji:

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

Sprawdź następujące pliki i usuń lub skomentuj odniesienia do RVM:

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

Skomentuj / usuń następujące linie z / etc / profile:

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

/ etc / profile jest plikiem tylko do odczytu, więc użyj:

sudo vim /etc/profile

A po dokonaniu zmiany napisz za pomocą huku!

:w!

Na koniec zaloguj się ponownie / uruchom ponownie terminal.

Kingsley Ijomah
źródło
Co sprawia, że ​​pojawia się ten początkowy komunikat?
Newbyte
1
Jeśli RVM został zainstalowany dla jednego użytkownika, nie powinien był być wykonywany przy użyciu sudopoczątkowo, więc żaden z jego plików nie będzie w ścieżkach /etclub /usr. Tylko wtedy, gdy został zainstalowany przy użyciu wielu użytkowników lub z sudo, zobaczysz to, a ich istnienie jest mocną wskazówką, że dokumentacja instalacyjna RVM NIE była przestrzegana, aby zainstalować ją w pierwszej kolejności.
Tin Man
17

Oprócz odpowiedzi @ tadmana usunąłem opakowania /usr/local/bini plik /etc/profile.d/rvm.

Opakowania obejmują:

erb
gem
irb
rake
rdoc
ri
ruby
testrb
hinosx
źródło
3
Uwaga: to /usr/local/binnie jest /user/local/bin.
bfontaine
7

Wiele osób często popełnia błąd, myśląc, że robi to „implode rvm”. Musisz usunąć wszystkie ślady plików .rm. Ponadto zajmie to ręczne usunięcie z katalogu głównego. Upewnij się, że zostanie usunięty, a także wszystkie zainstalowane w nim wersje Ruby.

Caffeine Coder
źródło
6

Usuń skrypt ładujący RVM z /.bash_rc lub /.zsh_rc, a następnie użyj:

rm -rf /.rvm

Lub:

rvm implode
Wisznu Atrai
źródło
2
Czy to RVM rm -rf /.rvmczy rm -rf ~/.rvm?
wstydliwie
5

Biegać:

rvm implode

Teraz musisz odinstalować klejnot RVM, używając:

gem uninstall rvm

Sprawdź, czy w twoim katalogu domowym są jakieś pliki RVM, jeśli tak, usuń je.

Przejdź do katalogu domowego i wyświetl wszystkie ukryte pliki:

ls -a

rm  .rvm
rm  .rvmrc
slal
źródło
Uwaga: RVM nie jest klejnotem, więc gem uninstall rvmzawiedzie.
Tin Man
3

Pamiętaj, że jeśli zainstalowałeś RVM przez apt-get, musisz wykonać kilka dalszych kroków rvm implodelub apt-get remove ruby-rvm, aby naprawdę odinstalować.

Zobacz „ Instalowanie RVM na Ubuntu ”.

rogerdpack
źródło
2

Jeśli nadal env: ruby_executable_hooks: No such file or directorydzwonisz po pakiet Ruby, oznacza to, że RVM zostawił ci mały prezent $PATH.

Uruchom następujące polecenie, aby znaleźć szkodliwe skrypty:

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

Następnie rmwszystkie mecze. Oczywiście będziesz musiał ponownie zainstalować wszystkie te biblioteki z RVM-free gem.

chbrown
źródło
2

Dla innych początkujących użytkowników powłoki próbujących naprawić zmienną PATH

Po wykonaniu instrukcji z zaakceptowanej odpowiedzi sprawdź i zmodyfikuj zmienną PATH, jeśli to konieczne:

env | grep PATH 

jeśli widzisz gdziekolwiek „rvm”, musisz dowiedzieć się, gdzie ustawiasz ŚCIEŻKĘ i zmodyfikować. Ustawiałem go w 3 plikach - sprawdź więc wszystkie następujące pliki:

vim .bashrc  

Usuń linie w pliku odwołujące się do rvm za pomocą polecenia dd. : wq, aby zapisać i wyjść.
source .bashrc„przeładować”

Powtórz ten proces (zaczynając od komendy vim) dla .profile i .bash_profile

leenyburger
źródło
To jest doskonały punkt.
Tin Man
0

Dokumentacja dotycząca rozwiązywania problemów według RVM „ Jak całkowicie usunąć wszystkie ślady RVM z mojego systemu, w tym w przypadku instalacji w całym systemie? ”:

Oto niestandardowy skrypt, który nazywamy „cleanout-rvm”. Chociaż zdecydowanie można go używać rvm implodejako zwykłego użytkownika lub rvmsudo rvm implodedo instalacji całego systemu, skrypt ten jest użyteczny, ponieważ całkowicie wykracza poza RVM i czyści RVM bez korzystania z samego RVM, nie pozostawiając żadnych śladów.

#!/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."
Blaszany Człowiek
źródło
0

Korzystam z systemu Ubuntu 19.04 i postępowałem zgodnie ze wszystkimi powyższymi instrukcjami, a następnie kilkoma. Wreszcie działało dla mnie bieganie

sudo apt autoremove rvm

a teraz, gdy próbuję ponownie zainstalować RVM, właściwie go nie ma. RVM jest co najmniej inwazyjne.

Abadfish
źródło
Istnieje wiele prób wyjaśnienia, w jaki sposób zainstalować RVM w Internecie, a większość z nich jest bardzo nieaktualna i zupełnie błędna, ponieważ aplikacja znacznie się rozwinęła od czasu jej wydania. Witryna RVM jest ostatecznym źródłem informacji na temat instalowania, usuwania lub korzystania z niej. Istnieje wiele stron, ponieważ jest to elastyczne narzędzie, ale jeśli wykonasz podstawową instalację, okaże się, że nie jest to wcale inwazyjne i dość łatwe w zarządzaniu lub usuwaniu.
Tin Man
-1

Próbowałem powyższych poleceń, aby usunąć RVM z macOS, ale jakoś nadal pojawiał się na ścieżce.

Oto co zrobiłem, co zadziałało:

$ open ~/.bash_profile

Dodaj do swojego profilu bash:

unset GEM_PATH
unset MY_RUBY_HOME
unset GEM_HOME

Następnie w biegu terminalowym:

$ source ~/.bash_profile
Sumi
źródło
Musi być gdzieś zainicjowany; grepdla tych zmiennych w twoim katalogu domowym i szanse są dobre, dowiesz się gdzie. Mogą być w instalacji dla wielu użytkowników /env/bash_profile.
Tin Man
Użyłem grep. Zapomniałem wspomnieć. Przeprosiny.
Sumi
Możesz edytować swoją odpowiedź i poprawiać ją, aby dokładniej pokazać, co zrobiłeś. Pamiętaj, że SO nie dotyczy natychmiastowego rozwiązania dla OP, ale dotyczy długoterminowych odpowiedzi dla innych, którzy szukają rozwiązań w przyszłości. Ludzie zapominają, że nie jest to witryna typu „chwycić za punkt”, chodzi o wprowadzenie pozytywnych zmian w kodzie programisty.
Tin Man