Rimuovere tutte le gemme installate e ricominciare da capo


92

Recentemente ho iniziato a imparare Ruby e Ruby on Rails e ho visto una miriade di materiali per iniziare. Ultimamente ho scoperto che continuo a ricevere errori in cui le gemme non si installano o verranno installate ma non possono essere utilizzate per qualche motivo, e ho deciso che voglio rimuovere tutto ancora una volta solo per avere Ruby installato e ricominciare con l'installazione. Un video di formazione mi ha fatto installare la maggior parte delle mie gemme con RVM, quindi non so se questo cambia qualcosa.

Quindi, in breve, la mia domanda è "Come posso sbarazzarmi di RVM, Rubygems e tutte le gemme installate in modo da poter ricominciare da capo solo con Ruby?"

Modifica: sono su Mac OS 10.6


1
Hai installato in / opt / ruby? Questo è quello che faccio per poter rimuovere velocemente Ruby.
alternativa

Vedi stackoverflow.com/questions/15100496/… Questo dovrebbe funzionare anche per 1.9.3 :)
Nathan Lilienthal

Il titolo della tua domanda e il riepilogo della "domanda breve" alla fine sono due cose diverse ...
mpowered

Risposte:


118

Dal sito di supporto RVM :

RVM installa tutto in ~ / .rvm. Per rimuovere RVM dal tuo sistema esegui "rm -rf ~ / .rvm". Potresti avere un file di configurazione aggiuntivo in ~ / .rvmrc e ovviamente l'hook RVM nei tuoi file di avvio bash / zsh.

Quindi, vai alla riga di comando e digita rm -rf ~/.rvm

Tutte le gemme installate si trovano nelle cartelle ~ / .rvm, quindi fare quanto sopra rimuoverà le gemme ei rubini installati in una volta.

Le gemme che hai aggiunto pre-RVM con l'installazione predefinita di ruby ​​possono essere rimosse digitando questo al prompt dei comandi:

for x in `gem list --no-versions`; do gem uninstall $x -a -x -I; done

1
L'ho appena eseguito, ma gems è ancora installato. Tuttavia sembra che l'abbia ricaricato. Non sono sicuro se è stato ricaricato con i valori predefiniti da Mac XCode o cosa ...
Dave Long,

aggiunto un'altra riga per sbarazzarsi delle gemme che hai aggiunto pre-RVM
michaelmichael

1
Aggiungerei le opzioni '-all -x -I' alla disinstallazione di gem per evitare che ti chieda (per binari, versioni o dipendenze) durante la disinstallazione.
timmfin

4
Per riferimento, il comando completo è: for x in `gem list --no-versions`; fare gem disinstallare $ x -a -x -I; fatto
Daniel Rehner

7
Per ulteriori riferimenti, un'altra opzione:gem list --no-versions | xargs gem uninstall -aIx
trisweb

68
gem uninstall -aIx

Disinstalla tutte le gemme senza richiesta.

Opzioni

-a, --[no-]all                   Uninstall all matching versions
-I, --[no-]ignore-dependencies   Ignore dependency requirements while
                                 uninstalling
-x, --[no-]executables           Uninstall applicable executables without
                                 confirmation

Questo mi dà:ERROR: While executing gem ... (Gem::InstallError) gist is not installed in GEM_HOME, try: gem uninstall -i /usr/share/rubygems-integration/all gist
user2023370

34

Per Windows e Unix copia / incolla nel prompt dei comandi ( Ruby 1.9.x ).

ruby -e "`gem list`.split(/$/).each { |line| puts `gem uninstall -Iax #{line.split(' ')[0]}` unless line.strip.empty? }"

2
ERROR: While executing gem ... (Gem::CommandLineError) Please specify at least one gem name (e.g. gem build GEMNAME) -e:1: no .<digit> floating literal anymore; put 0 before dot bundle (0.0.1) ^ -e:1: syntax error, unexpected tINTEGER bundle (0.0.1) ^
isomorfismi

@isomorphismes non è sicuro di averlo risolto, ma puoi provare il comando ora.
Haris Krajina

22

usando RVM, potresti semplicemente digitare ...

rvm gemset empty GEMSET

dove GEMSET è il gemset che vorresti svuotare. poi...

installa bundle

yum install bundler e infine

bundle install

14

rvm implode(vedi cli docs ) sembra funzionare - e ti dice anche dove cercare gli avanzi


2
Questa è tecnicamente la risposta più corretta ed esattamente ciò per cui è stata progettata.
mpowered

"implode - rimuove tutte le installazioni di ruby ​​che gestisce, tutto in ~ / .rvm"
Nein

5
  1. Questo è il lavoro per me su Ubuntu 16.04. Per me, quando stavo eseguendo i comandi rails -v generava errori a causa di NameError. Ho installato 3 versioni di rails (4.2.0, 4.2.6, 5.0.0.1). Stavo cercando di disinstallare gem non necessarie usando il comando gem disinstalla rails -v numero di versione ma non sono in grado di farlo, ma trovo un modo per risolvere questo problema. Per disinstallare tutte le gemme, devi scorrere tutte le voci nell'elenco delle gemme con lo script bash. Questo metodo è molto scomodo. Grazie a Rubygems 2.1.0, ora puoi farlo con un comando.

    PASSO 1

    In primo luogo, assicurati di aggiornare il tuo Rubygems alla 2.1.0 o più recente. Per questo esegui questo comando (nel caso in cui tu stia lavorando su una versione precedente. Puoi controllare la tua versione gem usando questo comando uno qualsiasi di loro gem -v o gem --version )

    aggiornamento gem --system

    gemma: versione

    PASSO 2

    Esegui questo comando nel tuo terminale

    gem disinstalla --all

    Passaggio - 3

    Installa gem bundle (non è necessario penso solo per precauzioni) gem install bundle

    Passo - 4
    Installa i binari sul tuo sistema usando questo comando gem install rails -vspecific version you want to install puoi controllare la versione di rails sul sito ufficiale rails tutte le versioni esempio: - Ho installato la versione 4.2.6 di rails, si installa come da requisito. gem install rails -v 4.2.6

    Passaggio - 5

    Infine controlla la versione dell'applicazione rails framework installata utilizzando i comandi di base rails -v . Farà eco alla versione corrente dei framework rails. Godere :)

    Riferimenti

http://ruby-journal.com/how-to-uninstall-all-ruby-gems/ http://guides.rubyonrails.org/v4.1/getting_started.html


2

Passo 1:

Per prima cosa ho continuato a riscontrare un errore che diceva:

Non hai i permessi di scrittura per la directory / usr / bin

Per ottenere l'autorizzazione, sono diventato un utente root con (questo è potenzialmente pericoloso per motivi che esulano dalla mia attuale comprensione) :

sudo -s

Credito

Passo 2:

Quindi, ho continuato a riscontrare un errore che diceva:

[gemma] non può essere disinstallata perché è una gemma predefinita

Questo mi ha permesso di disinstallare tutto:

for i in `gem list --no-versions`; do gem uninstall -aIx $i; done

Credito

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.