Après la mise à jour d'un bundle, vous aurez des gemmes qui peuvent être obsolètes - puisqu'une version plus récente de cette gemme a été installée. Il n'y a pas de telle commande sous l' bundle
exécutable ie bundle clean
. Comment se débarrasser de ces joyaux obsolètes?
Il s'agit d'une tentative de réduire la taille des limaces dans mon application rails.
la source
bundle clean --force
cela ne touche pas vos gemmes globales, mais uniquement celles de votre ensemble actuel. Doncbundle clean --force
produit le même résultat que et est plus rapide puisrvm gemset empty
suivi debundle install
.Si vous utilisez RVM, vous pouvez utiliser
rvm gemset empty
pour l'ensemble de gemmes actuel - cette commande supprimera toutes les gemmes installées dans l'ensemble de gemmes actuel (l'ensemble de gemmes lui-même restera en place). Ensuite, exécutezbundle install
pour installer les versions réelles des gemmes. Assurez-vous également de ne pas supprimer les gemmes générales telles que rake, bundler, etc. pendantrvm gemset empty
(si c'est le cas, installez-les manuellement viagem install
avantbundle install
).la source
Si vous utilisez RVM, vous pouvez installer vos gemmes dans des ensembles de gemmes . De cette façon, lorsque vous souhaitez effectuer un nettoyage complet, vous pouvez simplement supprimer l'ensemble de gemmes, qui à son tour supprime toutes les gemmes qui y sont installées. Votre autre option consiste simplement à désinstaller vos gemmes inutilisées et à réexécuter votre
bundle install
commande.Étant donné que bundler est censé être un outil de gestion des versions de gem projet par projet, il ne fournit pas de
bundle clean
commande. Cela signifierait la possibilité de supprimer également les gemmes associées à d'autres projets, ce qui ne serait pas souhaitable. Cela signifie que le bundler est probablement le mauvais outil à utiliser pour gérer votre répertoire gem. Ma recommandation personnelle serait d'utiliser les jeux de gemmes RVM pour bac à sable vos gemmes dans certains projets ou versions ruby.la source
Honnêtement, j'ai eu des problèmes avec les dépendances circulaires de bundler et la meilleure façon de procéder est
rm -rf .bundle
. Épargnez-vous le mal de tête et utilisez simplement le marteau.la source
rvm implode --force
puis réinstaller rvmJe suppose que vous installez des gemmes
vendor/bundle
? Si oui, pourquoi ne pas simplement supprimer toutes les gemmes et faire un nettoyagebundle install
?la source
En cherchant une réponse à la même question, je suis tombé sur gem_unused .
Vous pouvez également lire cet article: http://chill.manilla.com/2012/12/31/clean-up-your-dirty-gemsets/
Le code source est disponible sur GitHub: https://github.com/ apolzon / gem_unused
la source
Supprimez simplement les gemmes obsolètes de votre Gemfile. Si vous parlez d'Heroku (vous ne l'avez pas mentionné), le slug est compilé à chaque nouvelle version, en utilisant simplement le contenu actuel de ce fichier.
la source
Exécutez simplement, pour nettoyer les gemmes obsolètes et supprimer les avertissements d'impression après le bundle.
la source