Come rimuovere RVM (Ruby Version Manager) dal mio sistema


575

Come posso rimuovere RVM (Ruby Version Manager) dal mio sistema?


9
Non sono sicuro delle tue intenzioni da rimuovere rvm- potrebbe essere la sua "ostruzione" - ma rbenvè un'alternativa utile. Puoi comunque gestire più versioni di Ruby sul tuo sistema, ma non sovrascrive i comandi della shell, non gestisce i gemset ( Il bundler è più che sufficiente) e non deve essere caricato nella shell.
Jochem Schulenklopper,

Risposte:


923

C'è un semplice comando integrato che lo estrarrà:

rvm implode

Questo rimuoverà la rvm/directory e tutti i rubini creati al suo interno. Per rimuovere la traccia finale di rvm, è necessario rimuovere anche la gemma rvm:

gem uninstall rvm

Se hai apportato modifiche al tuo PATH, potresti voler estrarre anche quelle. Controlla i tuoi .bashrc, .profilee .bash_profilefile, tra le altre cose.

Potrebbe anche essere presente un /etc/rvmrcfile o uno nella directory home ~/.rvmrcche potrebbe essere necessario rimuovere.


21
+1 per notare le impostazioni del profilo e la disinstallazione della gemma, se non hai ascoltato Wayne in primo luogo e l'hai installato come una gemma. :)
Jed Schneider,

7
Se, come me, hai configurato rvm nel passeggero, assicurati di reinstallare anche il passeggero in seguito.
Berkes,

4
Potrebbe interromperlo temporaneamente fino a quando non crei una nuova shell, poiché è così che si bashcomportano cose come quando tiri fuori gli eseguibili PATH.
Tadman,

14
Ho anche avuto un riferimento a RVM in~/.zshrc
Nate Cook il

8
Qualcun altro ha la sensazione che disinstallare rvm dovrebbe essere più semplice di così? Buona salsa.
mycargus,

56

Se le altre risposte non rimuovono RVM abbastanza a fondo per te, la pagina Risoluzione dei problemi di RVM contiene questa sezione:

Come ripulisco completamente tutte le tracce di RVM dal mio sistema, anche per installazioni a livello di sistema?

Ecco uno script personalizzato che chiamiamo come cleanout-rvm. Anche se puoi sicuramente utilizzarlo rvm implodecome utente normale o rvmsudo rvm implodeper un'installazione a livello di sistema, questo script è utile in quanto esce completamente da RVM e pulisce RVM senza utilizzare RVM stesso, senza lasciare tracce.

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

Quando si utilizza implodee si vede:

Psychologist intervened, cancelling implosion, crisis avoided :)

Quindi potresti voler usare --force

rvm implode --force

Quindi rimuovere RVM dai seguenti percorsi:

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

Controllare i seguenti file e rimuovere o commentare i riferimenti a RVM:

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

Commenta / rimuovi le seguenti righe da / etc / profile:

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

/ etc / profile è un file di sola lettura, quindi usa:

sudo vim /etc/profile

E dopo aver apportato la modifica scrivi con il botto!

:w!

Infine accedi nuovamente / riavvia il tuo terminale.


Cosa fa apparire quel messaggio iniziale?
Newbyte,

1
Se RVM è stato installato per un singolo utente, non avrebbe dovuto essere utilizzato sudoinizialmente, quindi nessuno dei suoi file sarà nei percorsi /etco /usr. Solo quando è stato installato utilizzando il multiutente o con sudolo vedrai, e la loro esistenza è un forte suggerimento che la documentazione di installazione di RVM NON è stata seguita per installarlo in primo luogo.
Tin Man,

17

Oltre alla risposta di @ tadman, ho rimosso i wrapper /usr/local/bine il file /etc/profile.d/rvm.

Gli involucri includono:

erb
gem
irb
rake
rdoc
ri
ruby
testrb

3
Nota: non lo /usr/local/binè /user/local/bin.
bfontaine,

7

Molte persone fanno un errore comune nel pensare che "rvm implode" lo faccia. Devi eliminare tutte le tracce di qualsiasi file .rm. Inoltre, saranno necessarie alcune eliminazioni manuali da root. Assicurati che venga eliminato e anche tutte le versioni di ruby ​​che hai installato utilizzandolo.


6

Rimuovere lo script di caricamento RVM da /.bash_rc o /.zsh_rc, quindi utilizzare:

rm -rf /.rvm

O:

rvm implode

2
È rvm rm -rf /.rvmo rm -rf ~/.rvm?
Shibly

5

Correre:

rvm implode

Ora devi disinstallare la gemma RVM usando:

gem uninstall rvm

Controlla se ci sono file RVM rimanenti nella tua home directory, se sì rimuovili.

Vai alla home directory ed elenca tutti i file nascosti:

ls -a

rm  .rvm
rm  .rvmrc

Nota: RVM non è un gioiello, quindi gem uninstall rvmfallirà.
Tin Man,

3

Si noti che se RVM è stato installato tramite apt-get, è necessario eseguire alcuni passaggi aggiuntivi rvm implodeo apt-get remove ruby-rvmper farlo disinstallare realmente.

Vedi " Installazione di RVM su Ubuntu ".


2

Se ricevi ancora un messaggio env: ruby_executable_hooks: No such file or directoryquando chiami un pacchetto Ruby, significa che RVM ti ha lasciato un piccolo regalo $PATH.

Eseguire quanto segue per trovare gli script offensivi:

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

Quindi rmtutte le partite. gemOvviamente dovrai reinstallare tutte quelle librerie con una versione senza RVM .


2

Per altri neofiti della shell che cercano di correggere la variabile PATH

Dopo aver seguito le istruzioni nella risposta accettata, controlla e modifica la tua variabile PATH se necessario:

env | grep PATH 

se vedi "rvm" ovunque, devi capire dove stai impostando PATH e modificarlo. Lo stavo impostando in 3 file, quindi controlla tutti i seguenti file:

vim .bashrc  

Elimina le righe nel file che fanno riferimento a rvm usando il comando dd. : wq per salvare ed uscire.
source .bashrc"ricaricare"

Ripetere questo processo (a partire dal comando vim) per .profile e .bash_profile


Questo è un punto eccellente .
Tin Man,

0

Documentazione per la risoluzione dei problemi di RVM " Come posso eliminare completamente tutte le tracce di RVM dal mio sistema, incluso per installazioni a livello di sistema? ":

Ecco uno script personalizzato che chiamiamo 'cleanout-rvm'. Anche se puoi sicuramente utilizzarlo rvm implodecome utente normale o rvmsudo rvm implodeper un'installazione a livello di sistema, questo script è utile in quanto esce completamente da RVM e pulisce RVM senza utilizzare RVM stesso, senza lasciare tracce.

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

Sto eseguendo Ubuntu 19.04 e ho seguito tutte le istruzioni sopra e poi alcune. Alla fine, quello che ha funzionato per me è stato correre

sudo apt autoremove rvm

e ora quando provo a reinstallare RVM in realtà non c'è più. RVM è invasivo, per non dire altro.


Esistono numerosi tentativi di spiegare come installare RVM su Internet e la maggior parte sono molto obsoleti e sbagliati perché l'applicazione è cresciuta molto negli anni da quando è stata rilasciata. Il sito di RVM è la fonte definitiva per informazioni sull'installazione, l'eliminazione o l'utilizzo. Ci sono molte pagine perché è uno strumento flessibile, ma se segui l'installazione di base scoprirai che non è affatto invasivo e abbastanza facile da gestire o rimuovere.
Tin Man,

-1

Ho provato i comandi sopra per rimuovere RVM da macOS, ma in qualche modo era ancora visibile nel percorso.

Ecco cosa ho fatto, che ha funzionato:

$ open ~/.bash_profile

Aggiungi al tuo profilo bash il seguente:

unset GEM_PATH
unset MY_RUBY_HOME
unset GEM_HOME

Quindi nel terminale eseguire:

$ source ~/.bash_profile

Deve essere inizializzato da qualche parte; grepper quelle variabili nella tua home directory e le probabilità sono buone, scoprirai dove. In un'installazione multiutente potrebbero trovarsi /env/bash_profile.
Tin Man,

Ho usato grep. Ho dimenticato di menzionare. Scuse.
Sumi,

Va bene modificare la tua risposta e modificarla per mostrare in modo più preciso quello che hai fatto. Ricorda, SO non riguarda la soluzione immediata per l'OP tanto quanto riguarda le risposte a lungo termine per gli altri in futuro che sono alla ricerca di soluzioni. La gente dimentica che non è un sito di riferimento, si tratta di apportare modifiche positive al codice dei programmatori.
Tin Man,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.