2012-06-21 3 views
0

je lis que lors de l'exécution bundle install dans la ligne de commande à l'intérieur d'un projet Rails, les pierres précieuses (dépendances) sont chargés à partir du Gemfile.lock. Toutefois, lors du lancement de bundle update, les dépendances sont chargées à partir de Gemfile, par conséquent une mise à jour des valeurs est effectuée dans Gemfile.lock.Gemfile.lock ne remplace pas Gemfile

J'ai un Gemfile contenant:

bijou "aérofreins", git => "https://github.com/mico12/airbrake.git"

et Gemfile .lock contenant:

GIT distant: git: //github.com/airbrake/airbrake.git
révision: 15444189dfce4916ff35f326f6c34b8dce9b933d
caractéristiques:

airbrake (3.0.9) 
    activesupport 
    builder 

Pourquoi quand j'exécute bundle install, j'obtenir que:

Récupérer https://github.com/mico12/airbrake.git *

au lieu de cela (je me attendais):

*

Récupérer https://github.com/airbrake/airbrake.git

Il semble que les dépendances sont chargées à partir Gemfile quel que soit le cas, même si je pensais que l'utilisateur référentiel « aérofreins » à signaler.

La relation entre Gemfile et Gemfile.lock est pas très clair pour moi.

+1

Ceci est une bonne lecture: http://yehudakatz.com/2010/12/16/clarifying-the-roles-of-the-gemspec-and-gemfile/ –

+0

Je viens de le lire avant de poser ma question :) – Mik378

Répondre

1

Vous spécifiez les dépendances dans Gemfile. Lorsque vous exécutez bundle install ou bundle update, Bundler installe des pierres précieuses spécifiées par Gemfile, et écrit une gelée (verrouillage) dépendances arbre Gemfile.lock.

Lorsque l'application est en cours d'exécution, Rails se penche sur Gemfile.lock et charges toutes les pierres précieuses.

A partir de votre exemple, puisque vous spécifiez une fourchette de mico12 de aérofreins, bundle install ou bundle update devrait chercher à https://github.com/mico12/airbrake.git. Après cela est fait, cela devrait également dans le fichier Gemfile.lock.

Questions connexes