J'ai lu " Relations entre Rubygems, Bundler et RVM " avant de le redemander.
Eh bien, il y a beaucoup de questions comme celle-ci, mais les personnes qui ont répondu disent qu'elles travaillent avec Rubygems, RVM et Bundler, et elles n'ont pas expliqué comment chacune d'elles fonctionne isolément.
Je suis vraiment confus avec la façon dont les trois fonctionnent isolément lorsque nous installons des gemmes. S'il vous plaît, ne me dites pas comment vous travaillez, ce qui m'aidera, mais je n'apprendrai pas ce qui se passe lorsque nous jouons avec eux.
Ma confusion peut être décomposée en ces questions. Où est installé un bijou quand:
S'il vous plaît, aidez-moi à comprendre ce truc avec des ressources sur le Web ou par vos réponses détaillées.
echo $GEM_HOME
dans un terminal.echo $GEM_HOME
afficherait maintenant un chemin d'accès à votre installation RVM.$GEM_HOME
, ou, si vous spécifiez un chemin lors de l'exécution de bundle install
sera installé sur ce chemin. Pour savoir où se trouve une gemme via Bundler, vous pouvez utiliser bundle show gemname
pour obtenir son chemin complet.Utilisation gem env
pour lister les chemins des gemmes dans chaque contexte.
Sans RVM gem env
indiquera les chemins d'accès à la bibliothèque de gemmes système.
Avec RVM gem env
signalera les chemins de bibliothèque de gemmes gérés par RVM.
Bundler gère les dépendances des applications et les installe dans la bibliothèque de gemmes de votre environnement. Si vous utilisez RVM + Bundler, les gemmes seront installées dans les répertoires de gemmes gérés RVM. Si vous l'utilisez sans RVM, bundler installera des gemmes dans les répertoires de gemmes du système.
J'essaie également de comprendre comment cela fonctionne. Le blog " Conseils sur l'utilisation de Ruby, RVM, Passenger, Rails, Bundler,… en développement " m'a aidé à avoir une meilleure vue d'ensemble.
BTW, c'est une traduction d'un article français, la version française est meilleure.
Pour trouver le chemin où une gemme est installée, utilisez:
gem which gem_name
Pour trouver des exécutables (comme html2haml), utilisez:
which executable_name
Pour éviter de taper bundle exec html2haml
qui est recommandé par l'équipe Bundler, utilisez mon rubygems-bundler gem.