0

Rails プロジェクト内のコマンドラインで実行するbundle installと、gem (依存関係) が Gemfile.lock から読み込まれることを読みました。

ただし、起動時bundle updateに依存関係が Gemfile から読み込まれるため、値の更新が Gemfile.lock で行われます。

だから私は含むGemFileを持っています:

gem "エアブレーキ", :git => "https://github.com/mico12/airbrake.git"

および以下を含む Gemfile.lock:

GIT リモート: git://github.com/airbrake/airbrake.git
リビジョン: 15444189dfce4916ff35f326f6c34b8dce9b933d
仕様:

airbrake (3.0.9)
  activesupport
  builder

を実行すると、次のようになるのはなぜですかbundle install

フェッチhttps://github.com/mico12/airbrake.git *

その代わりに(私が期待した):

フェッチhttps://github.com/airbrake/airbrake.git *

リポジトリユーザー「airbrake」が指されていることを期待していましたが、依存関係はどのような場合でも Gemfile から読み込まれるようです。

Gemfile と Gemfile.lock の関係は、私にはあまり明確ではありません。

4

1 に答える 1

1

Gemfile で依存関係を指定します。bundle installまたはを実行するbundle updateと、バンドラーは Gemfile で指定された gem をインストールし、凍結された (ロックされた) 依存関係ツリーを Gemfile.lock に書き込みます。

アプリの実行中、Rails は Gemfile.lock を調べて、すべての gem を読み込みます。

あなたの例のように、mico12エアブレーキのフォークを指定するbundle installか、 https://github.com/mico12/airbrake.gitbundle updateから取得する必要があります。それが完了したら、これは Gemfile.lock ファイルにもあるはずです。

于 2012-06-21T00:57:35.363 に答える