So entfernen Sie RVM (Ruby Version Manager) von meinem System

575

Wie kann ich RVM (Ruby Version Manager) von meinem System entfernen?

lucianosousa
quelle
9
Sie sind sich nicht sicher über Ihre Absichten zu entfernen rvm- es könnte seine "Aufdringlichkeit" sein -, sind aber rbenveine lohnende Alternative. Sie können immer noch mehrere Ruby-Versionen auf Ihrem System verwalten, aber es überschreibt keine Shell-Befehle, verwaltet keine Gemsets ( Bundler ist mehr als ausreichend) und muss nicht in die Shell geladen werden.
Jochem Schulenklopper

Antworten:

923

Es ist ein einfacher Befehl eingebaut, der es abruft:

rvm implode

Dadurch werden das rvm/Verzeichnis und alle darin erstellten Rubine entfernt. Um die letzte Spur von rvm zu entfernen, müssen Sie auch den rvm-Edelstein entfernen:

gem uninstall rvm

Wenn Sie Änderungen an Ihrem vorgenommen haben PATH, möchten Sie diese möglicherweise auch abrufen. Prüfen Sie .bashrc, .profileund .bash_profileDateien, unter anderem.

Möglicherweise haben Sie auch eine /etc/rvmrcDatei oder eine in Ihrem Home-Verzeichnis ~/.rvmrc, die möglicherweise ebenfalls entfernt werden muss.

Tadman
quelle
21
+1 für das Notieren der Profileinstellungen und die Deinstallation des Edelsteins, wenn Sie Wayne nicht zuerst angehört und als Edelstein installiert haben. :)
Jed Schneider
7
Wenn Sie - wie ich - rvm im Passagier konfiguriert haben, stellen Sie sicher, dass Sie den Passagier auch danach neu installieren.
berkes
4
Es kann vorübergehend bashunterbrochen werden, bis Sie eine neue Shell erstellen, da sich solche Dinge genau so verhalten, wenn Sie ausführbare Dateien aus der Shell herausziehen PATH.
Tadman
14
Ich hatte auch einen Hinweis auf RVM in~/.zshrc
Nate Cook
8
Hat noch jemand das Gefühl, dass die Deinstallation von rvm einfacher sein sollte? Gute Soße.
Mycargus
56

Wenn die anderen Antworten RVM nicht vollständig genug für Sie entfernen, enthält die Seite zur Fehlerbehebung von RVM diesen Abschnitt:

Wie kann ich alle Spuren von RVM vollständig von meinem System entfernen, auch bei systemweiten Installationen?

Hier ist ein benutzerdefiniertes Skript, das wir nennen cleanout-rvm. Während Sie es definitiv rvm implodeals normaler Benutzer oder rvmsudo rvm implodefür eine systemweite Installation verwenden können, ist dieses Skript nützlich, da es vollständig außerhalb von RVM ausgeführt wird und RVM ohne Verwendung von RVM selbst bereinigt und keine Spuren hinterlässt.

#!/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
quelle
37

Bei der Verwendung implodeund Sie sehen:

Psychologist intervened, cancelling implosion, crisis avoided :)

Dann möchten Sie vielleicht verwenden --force

rvm implode --force

Entfernen Sie dann RVM von den folgenden Stellen:

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

Überprüfen Sie die folgenden Dateien und entfernen oder kommentieren Sie Verweise auf RVM:

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

Kommentieren / entfernen Sie die folgenden Zeilen aus / etc / profile:

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

/ etc / profile ist eine schreibgeschützte Datei. Verwenden Sie daher:

sudo vim /etc/profile

Und nachdem Sie die Änderung vorgenommen haben, schreiben Sie mit einem Knall!

:w!

Zum Schluss melden Sie sich erneut an / starten Sie Ihr Terminal neu.

Kingsley Ijomah
quelle
Wie erscheint diese erste Nachricht?
Newbyte
1
Wenn RVM für einen einzelnen Benutzer installiert wurde, sollte es ursprünglich nicht verwendet worden sein sudo, sodass sich keine seiner Dateien in den Pfaden /etcoder befindet /usr. Es wurde nur , wenn es installiert , um die Multi-User verwenden oder mit sudoSie werden sehen , dass, und ihre Existenz sind starke Hinweise darauf , dass die RVM - Installationsdokumentation war NICHT in erster Linie zu installieren gefolgt.
Der Blechmann
17

Zusätzlich zu @ tadmans Antwort habe ich sowohl die Wrapper /usr/local/binals auch die Datei entfernt /etc/profile.d/rvm.

Die Wrapper enthalten:

erb
gem
irb
rake
rdoc
ri
ruby
testrb
hinosx
quelle
3
Hinweis: ist es /usr/local/binnicht /user/local/bin.
Bfontaine
7

Viele Leute machen einen häufigen Fehler zu denken, dass 'rvm implode' es tut. Sie müssen alle Spuren von .rm-Dateien löschen. Außerdem werden einige manuelle Löschungen von root benötigt. Stellen Sie sicher, dass es gelöscht wird und auch alle Ruby-Versionen, die Sie damit installiert haben.

Koffein-Codierer
quelle
6

Entfernen Sie das RVM-Ladeskript aus /.bash_rc oder /.zsh_rc und verwenden Sie dann:

rm -rf /.rvm

Oder:

rvm implode
Vishnu Atrai
quelle
2
Ist es rvm rm -rf /.rvmoder rm -rf ~/.rvm?
Shibly
5

Lauf:

rvm implode

Jetzt müssen Sie das RVM-Juwel deinstallieren, indem Sie:

gem uninstall rvm

Überprüfen Sie, ob sich noch RVM-Dateien in Ihrem Home-Verzeichnis befinden. Wenn ja, entfernen Sie diese.

Gehen Sie zum Home-Verzeichnis und listen Sie alle versteckten Dateien auf:

ls -a

rm  .rvm
rm  .rvmrc
Slal
quelle
Hinweis: RVM ist kein Juwel und gem uninstall rvmwird daher scheitern.
Der Blechmann
3

Beachten Sie, dass , wenn Sie RVM über apt-get installiert, Sie haben als einige weitere Schritte ausführen rvm implodeoder apt-get remove ruby-rvmes deinstallieren , um wirklich zu bekommen.

Siehe " Installieren von RVM unter Ubuntu ".

Rogerdpack
quelle
2

Wenn Sie env: ruby_executable_hooks: No such file or directorybeim Aufrufen eines Ruby-Pakets immer noch ein erhalten , bedeutet dies, dass RVM ein kleines Geschenk für Sie hinterlassen hat$PATH .

Führen Sie die folgenden Schritte aus, um die fehlerhaften Skripte zu finden:

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

Dann rmalle Streichhölzer. Natürlich müssen Sie alle diese Bibliotheken mit einem RVM-freien neu installieren gem.

chbrown
quelle
2

Für andere Shell-Neulinge, die versuchen, die Variable PATH zu reparieren

Nachdem Sie die Anweisungen in der akzeptierten Antwort befolgt haben, überprüfen und ändern Sie gegebenenfalls Ihre PATH-Variable:

env | grep PATH 

Wenn Sie irgendwo "rvm" sehen, müssen Sie herausfinden, wo Sie PATH einstellen und ändern. Ich habe es in 3 Dateien eingestellt - überprüfen Sie also alle folgenden Dateien:

vim .bashrc  

Löschen Sie die Zeilen in der Datei, die auf rvm verweist, mit dem Befehl dd. : wq zum Speichern und Beenden.
source .bashrczum "Nachladen"

Wiederholen Sie diesen Vorgang (beginnend mit dem Befehl vim) für .profile und .bash_profile

leenyburger
quelle
Dies ist ein ausgezeichneter Punkt.
Der Blechmann
0

Gemäß der RVM-Dokumentation zur Fehlerbehebung " Wie entferne ich alle Spuren von RVM vollständig von meinem System, auch bei systemweiten Installationen? ":

Hier ist ein benutzerdefiniertes Skript, das wir als 'cleanout-rvm' bezeichnen. Während Sie es definitiv rvm implodeals normaler Benutzer oder rvmsudo rvm implodefür eine systemweite Installation verwenden können, ist dieses Skript nützlich, da es vollständig außerhalb von RVM ausgeführt wird und RVM ohne Verwendung von RVM selbst bereinigt und keine Spuren hinterlässt.

#!/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."
der Blechmann
quelle
0

Ich verwende Ubuntu 19.04 und habe alle obigen und einige Anweisungen befolgt. Schließlich funktionierte es für mich, zu rennen

sudo apt autoremove rvm

und jetzt, wenn ich versuche, RVM neu zu installieren, ist es tatsächlich weg. RVM ist, gelinde gesagt, invasiv.

Abadfish
quelle
Es gibt zahlreiche Versuche zu erklären, wie RVM über das Internet installiert werden kann, und die meisten sind sehr veraltet und völlig falsch, da die Anwendung in den Jahren seit ihrer Veröffentlichung stark gewachsen ist. Die Website von RVM ist die endgültige Quelle für Informationen zum Installieren, Löschen oder Verwenden. Es gibt viele Seiten, da es sich um ein flexibles Tool handelt. Wenn Sie jedoch die Basisinstallation befolgen, werden Sie feststellen, dass es überhaupt nicht invasiv und recht einfach zu verwalten oder zu entfernen ist.
Der Blechmann
-1

Ich habe die obigen Befehle versucht, um RVM von macOS zu entfernen, aber irgendwie wurde es immer noch im Pfad angezeigt.

Folgendes habe ich getan, was funktioniert hat:

$ open ~/.bash_profile

Fügen Sie Ihrem Bash-Profil Folgendes hinzu:

unset GEM_PATH
unset MY_RUBY_HOME
unset GEM_HOME

Dann im Terminal laufen:

$ source ~/.bash_profile
Sumi
quelle
Es muss irgendwo initialisiert werden; grepFür diese Variablen in Ihrem Home-Verzeichnis und die guten Chancen finden Sie heraus, wo. In einer Mehrbenutzerinstallation könnten sie sich in befinden /env/bash_profile.
Der Blechmann
Ich habe grep benutzt. Ich vergaß zu erwähnen. Entschuldigung.
Sumi
Es ist in Ordnung, Ihre Antwort zu bearbeiten und zu ändern, um genauer zu zeigen, was Sie getan haben. Denken Sie daran, bei SO geht es nicht um die unmittelbare Lösung für das OP, sondern um langfristige Antworten für andere in der Zukunft, die nach Lösungen suchen. Die Leute vergessen, dass es sich nicht um eine Grab-a-Point-Site handelt, sondern darum, den Code der Programmierer positiv zu ändern.
Der Blechmann