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?
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.
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.: -)
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
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