Disinstallare le vecchie versioni delle gemme Ruby


381

Ho diverse versioni di una gemma di Ruby:

$ gem list
rjb (1.3.4, 1.3.3, 1.1.9)

Come posso rimuovere le vecchie versioni ma mantenere le più recenti?

Risposte:


654
# remove all old versions of the gem
gem cleanup rjb

# choose which ones you want to remove
gem uninstall rjb

# remove version 1.1.9 only
gem uninstall rjb --version 1.1.9

# remove all versions less than 1.3.4
gem uninstall rjb --version '<1.3.4'

259

Per rimuovere le versioni precedenti di tutte le gemme installate, sono utili i seguenti 2 comandi:

 gem cleanup --dryrun

Il comando sopra mostrerà in anteprima quali gemme verranno rimosse.

 gem cleanup

Il comando sopra li rimuoverà effettivamente.


Non funziona nella mia installazione di Ubuntu Cloud9 ... devo eseguire con sudo
Mirv - Matt

13

Prova qualcosa del genere gem uninstall rjb --version 1.3.4.


1
la domanda era "Come posso rimuovere le vecchie versioni ma mantenere le più recenti?" questa risposta eliminerebbe la versione più recente.
austinheiman,

10

Modo per ripulire eventuali vecchie versioni di gemme.

sudo gem cleanup

Se vuoi solo vedere un elenco di ciò che verrebbe rimosso puoi usare:

sudo gem cleanup -d

Puoi anche ripulire solo una gemma specifica specificandone il nome:

sudo gem cleanup gemname

per rimuovere solo versioni specifiche come 1.1.9

gem uninstall gemname --version 1.1.9

Se stai ancora affrontando un'eccezione per installare gem, come:

gemma non valida: il pacchetto è danneggiato, eccezione durante la verifica: metodo indefinito `size 'per zero: NilClass (NoMethodError) in /home/rails/.rvm/gems/ruby-2.1.1@project/cache/nokogiri-1.6.6.2. gemma

il, è possibile rimuoverlo dalla cache:

rm /home/rails/.rvm/gems/ruby-2.1.1@project/cache/nokogiri-1.6.6.2.gem

Per maggiori dettagli:

http://blog.grepruby.com/2015/04/way-to-clean-up-gem-or-remove-old.html


Probabilmente non dovresti usaresudo
PR Whitehead il

8

gem cleanupusa i comandi di sistema. Le gemme installate sono solo directory nel filesystem. Se si desidera eliminare in batch, utilizzare rm -R.

  1. gem environment e nota il valore di GEM PATHS
  2. cd <your-gem-paths>/gems
  3. ls -1 |grep rjb- |xargs rm -R

2
"Le gemme installate sono solo directory nel filesystem." buono a sapersi, grazie
filant

0

Potrebbe essere necessario impostare GEM_HOMEil funzionamento della pulizia. Puoi controllare quali percorsi esistono per i file gemm eseguendo:

gem env

Prendi nota della sezione GEM PATHS.

Nel mio caso, ad esempio, con gemme installate nella mia home page dell'utente:

export GEM_HOME="~/.gem/ruby/2.4.0"
gem cleanup
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.