Désinstallation de tous les gemmes Ruby 2.0.0

il semble que ruby 2.0.0 a ajouté des gemmes" par défaut " au mélange et les rend non amovibles par GEM uninstall.

Comment Pouvez-vous supprimer tous les gemmes non par défaut?

44
demandé sur Nathan Lilienthal 2013-02-27 02:19:46

4 réponses

j'ai utilisé ce script d'une ligne.

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

il ignore les erreurs gem par défaut et ne fait que poursuivre. Simple et évidente.

85
répondu ihji 2013-02-28 11:10:50

tout d'abord, allez dans le répertoire des gemmes Comme. ./ruby/2.0.0-p195/lib/ruby/gems/2.0.0/spécifications

Vous trouverez un répertoire nommé par défaut, qui inclut tous les gemmes par défaut livrés avec ruby 2.0

Déplacer tous les *.gemspec stocké dans par défaut dir spécifications dir et de supprimer le vide par défaut dir.

alors vous pouvez faire ce que vous voulez comme au bon vieux temps.: -)

10
répondu Dolittle Wang 2013-06-30 10:37:58

j'ai écrit un script dans ruby pour supprimer toutes les gemmes non par défaut.

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

Ceci est nécessaire maintenant parce que contrairement à avant 2.0.0 certaines gemmes sont étiquetées "par défaut" avec l'installation de ruby, et ne peuvent pas être désinstallées avec gem uninstall. Cela rend les méthodes précédemment populaires pour supprimer toutes les gemmes ne fonctionne pas.

pour référence ici il est.

gem list | cut -d" " -f1 | xargs gem uninstall

4
répondu Nathan Lilienthal 2013-05-09 12:49:40

je n'ai pas encore trouvé une meilleure solution que d'exclure le "défaut" de gemmes:

/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
répondu Kevin 2014-02-11 18:13:26