Il semble que Ruby 2.0.0 a ajouté des gemmes "par défaut" au mélange et les rend non amovibles par désinstallation de gemmes).
Comment pouvez-vous supprimer toutes les gemmes non par défaut?
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 de gemme par défaut et continue simplement. Simple et évident.
Tout d'abord, allez dans le répertoire gems Like ../Ruby/2.0.0-p195/lib/Ruby/gems/2.0.0/specifications
Vous trouverez un répertoire nommé par défaut, qui inclut toutes les gemmes par défaut livrées avec Ruby 2.0
Déplacez tous les *. Gemspec stockés dans par défaut dir vers spécifications dir et supprimez le par défaut dir vide.
Ensuite, vous pouvez faire ce que vous voulez comme autrefois. :-)
J'ai écrit un script en Ruby pour supprimer toutes les gemmes non par défaut.
https://Gist.github.com/nixpulvis/5042764
Ceci est nécessaire maintenant car contrairement à la version 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 utilisées pour supprimer toutes les gemmes ne fonctionnent pas.
Pour référence ici c'est.gem list | cut -d" " -f1 | xargs gem uninstall
Je n'ai pas encore trouvé de meilleure réponse que d'exclure les gemmes "par défaut":
/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