45 votes

Désinstallation de toutes 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 désinstallation de gemme.

Comment supprimer toutes les gemmes qui ne sont pas par défaut ?

86voto

ihji Points 570

J'ai utilisé cette ligne script.

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

Il ignore les erreurs de la gemme par défaut et procède simplement. C'est simple et évident.

11voto

Dolittle Wang Points 31

Tout d'abord, allez dans le répertoire gems Comme ../ruby/2.0.0-p195/lib/ruby/gems/2.0.0/specifications
Vous trouverez un répertoire nommé par défaut qui comprend toutes les gemmes par défaut livrées avec Ruby 2.0.

Déplacez tous les *.gemspec stocké dans par défaut dir à spécifications et supprimez le dossier vide par défaut dir.

Ensuite, vous pourrez faire ce que vous voulez comme au bon vieux temps :-)

6voto

Nathan Lilienthal Points 344

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 parce que, contrairement à ce qui se passait avant la version 2.0.0, certaines gemmes sont étiquetées "par défaut" lors de l'installation de ruby, et ne peuvent pas être désinstallées avec la fonction gem uninstall . Ainsi, les méthodes précédemment utilisées pour supprimer toutes les gemmes ne fonctionnent pas.

Pour référence, le voici.
gem list | cut -d" " -f1 | xargs gem uninstall

0voto

Kevin Points 2223

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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X