Je sais qu'en utilisant gem install
, la gemme sera stockée sous /home/username/.rvm/gems/, sous laquelle la gemme a été installée.
Mais si j'utilise Bundler et spécifie la gemme dans le Gemfile, lorsque j'exécute l'installation de bundle, où ces gemmes seront-elles stockées? Et si j'avais déjà installé la gemme en utilisant gem install
, si j'exécute une installation groupée, utilisera-t-il la gemme précédente installée à l'aide de gem install
?
Ça dépend. Dans la configuration de développement habituelle, ils sont installés là où ils se trouvent lorsque vous installez une gemme "normalement" (en exécutant gem install foo
) et bundler ne réinstallera pas les gemmes déjà présentes. Cet emplacement dépend de la configuration de rubygems lui-même.
Si vous exécutez l'installation de bundle avec le --deployment
option alors les gemmes seront installées dans un emplacement unique à votre application (vous pouvez le passer comme une option distincte mais il s'agit par défaut du vendeur/bundle)
Vous pouvez également exécuter bundle package
pour stocker tous les fichiers .gem que votre application utilise dans vendor/cache
. Fonctionnement bundle install
préférera les gemmes du fournisseur/cache aux gemmes des autres emplacements.
Si vous voulez savoir où une gemme particulière est stockée, vous pouvez exécuter bundle show <gem-name>
. Par exemple:
user@Host$ bundle show rake
/var/bundle/Ruby/2.1.0/gems/rake-10.4.2
Ici /usr/local/lib/Ruby/gems/2.1.0/gems/
et ici: /usr/local/lib/Ruby/gems/2.1.0/bundler/gems/
.