Le bundler est lancé à partir du répertoire racine de votre application afin de s'assurer que toutes les gemmes nécessaires sont présentes pour que votre application fonctionne.Si pour une raison quelconque vous n'avez plus besoin d'un gem, vous devrez exécuter le
gem uninstall gem_name
comme vous l'avez indiqué ci-dessus.
EDIT - 24.12.2014
Je vois que les gens continuent à venir à cette question, j'ai décidé d'ajouter un petit quelque chose. La réponse que j'ai donnée était pour le cas où vous maintenez vos gemmes dans le monde entier. Pensez à utiliser un gestionnaire de gemmes tel que rbenv ou rvm pour garder les ensembles de gemmes adaptés à des projets spécifiques.
Cela signifie qu'aucune gemme ne sera installée au niveau global et donc, lorsque vous en supprimez une du fichier Gemfile de votre projet et que vous réexécutez le bundle, il ne sera évidemment pas chargé dans votre projet. Ensuite, vous pouvez exécuter bundle clean (avec le répertoire du projet) et il supprimera du système toutes les gemmes qui étaient une fois installées de votre Gemfile (dans le même répertoire) mais à ce moment-là ne sont plus répertoriées là ... histoire courte - il supprime les gemmes inutilisées.
gem uninstall pg
partir du dossier du projet désinstallera pg de votre ensemble de gemmes global / système au lieu de celui du bundlerERROR: While executing gem ... (NoMethodError) undefined method `delete' for #<Bundler::SpecSet:0x00000101142268>
Avec les nouvelles versions de bundler, vous pouvez utiliser la tâche de nettoyage:
Éditer:
Ce n'est pas recommandé si vous utilisez un ensemble de gemmes global (c'est-à-dire que tous vos projets gardent leurs gemmes au même endroit). Il existe cependant quelques moyens de séparer les joyaux de chaque projet:
rvm
jeux de gemmes ( http://rvm.io/gemsets/basics )bundle install
avec l'une des options suivantes:--deployment
ou--path=<path>
( http://bundler.io/v1.3/man/bundle-install.1.html )la source
bundle clean --force
supprimé un tas de gemmes que je n'utilise pas dans mon projet actuel mais que j'utilise dans mes autres projets. Étais-je censé tracer une voie?bundle clean
Renvoie simplement "Ne peut utiliser le nettoyage de bundle que lorsque --path est défini ou --force est défini". Mais l'--path
option n'apparaît même pas dans l'aide.clean
tâche n'a pas vraiment de sens si vous utilisez un ensemble de gemmes global. Mais si vous le souhaitez, chacun de vos projets peut avoir ses joyaux séparés. Vous pouvez le faire soit via rvm gemsets ( rvm.io/gemsets/basics ), soit en spécifiant le chemin des gemmes via l'--path
optionbundle install
( bundler.io/v1.3/man/bundle-install.1.html )Vous devez utiliser 'gem uninstall gem_name' pour désinstaller un gem.
Notez que si vous avez installé le gem à l'échelle du système (c.-à-d. Sudo bundle install), vous devrez peut-être spécifier le répertoire binaire en utilisant l'option -n, pour vous assurer que les binaires appartenant au gem sont supprimés. Par exemple
la source
J'ai semblé résoudre ce problème en supprimant manuellement la gemme licorne via le bundler ("sudo bundler exec gem uninstall unicorn"), puis en le rebundling ("sudo bundle install").
Je ne sais pas pourquoi cela s'est produit, bien que le correctif ci-dessus semble fonctionner.
la source
Si vous voulez nettoyer toutes vos gemmes et recommencer
la source
Bundler a maintenant une
bundle remove GEM_NAME
commande (depuis la v1.17.0, 25 octobre 2018 ).la source