Domanda Disinstallare tutte le gemme Ruby 2.0.0


Sembra che Ruby 2.0.0 abbia aggiunto gemme "predefinite" al mix e le rende non rimovibili da gem uninstall.

Come puoi rimuovere tutte le gemme non predefinite?


44
2018-02-26 22:19


origine


risposte:


Ho usato questo script a una riga.

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

Ignora gli errori gem default e procede. Semplice ed evidente.


84
2018-02-28 11:10



Per prima cosa vai nella directory delle gemme Mi piace ../ruby/2.0.0-p195/lib/ruby/gems/2.0.0/specifications
Troverai una directory chiamata predefinito, che include tutte le gemme predefinite fornite con Ruby 2.0

Sposta tutto il * .gemspec immagazzinato predefinito dir a specificazioni dir e rimuovi il vuoto predefinito dir.

Allora puoi fare quello che vuoi come ai vecchi tempi :-)


10
2018-06-30 10:12



Ho scritto una sceneggiatura in ruby ​​per rimuovere tutte le gemme non predefinite.

https://gist.github.com/nixpulvis/5042764

Questo è necessario ora perché diversamente dalle versioni precedenti alla 2.0.0 alcune gemme sono etichettate come "predefinite" con l'installazione di ruby ​​e non possono essere disinstallate con gem uninstall. Ciò rende i metodi precedentemente popolari per l'eliminazione di tutte le gemme non funzionanti.

Per riferimento qui è.
gem list | cut -d" " -f1 | xargs gem uninstall


4
2018-02-26 22:19



Non ho ancora trovato una risposta migliore di quella di escludere le gemme "predefinite":

/usr/local/bin/gem list --no-versions | \
grep -v -E "(bigdecimal|io-console|json|minitest|psych|rake|rdoc|test-unit)" | \
xargs --no-run-if-empty /usr/local/bin/gem uninstall --executables --user-install --all --force

0
2018-02-11 18:13