24

Railsの「Gemfile.lock」の目的は何ですか? 私は周りを探していましたが、満足のいく答えを見つけることができませんでした。

4

2 に答える 2

26

bundlergemのすべてのドキュメントを読む必要があります:http: //gembundler.com/

GEMFILE.LOCK

bundle installを実行すると、Bundlerは、使用したすべてのgemのフルネームとバージョン(Gemfile(5)で指定されたgemの依存関係を含む)をGemfile.lockというファイルに保持します。

Bundlerは、バンドルインストールへの後続のすべての呼び出しでこのファイルを使用します。これにより、アプリケーションがマシン間を移動する場合でも、常に同じ正確なコードを使用することが保証されます。

依存関係の解決が機能する方法のため、一見小さな変更(たとえば、Gemfile(5)内のgemの依存関係のポイントリリースへの更新)でも、すべての依存関係を満たすために根本的に異なるgemが必要になる可能性があります。

結果として、Gemfile.lockをバージョン管理にチェックインする必要があります。そうしないと、リポジトリをチェックアウトするすべてのマシン(本番サーバーを含む)がすべての依存関係を再度解決します。その結果、Gemfile(5)またはそれらの依存関係の一部が更新されました。

于 2012-02-09T09:39:53.780 に答える
6

Gemfile.lockアプリの他の開発者と展開環境が、インストールしたばかりのサードパーティ コードとまったく同じコードを使用することを保証します。

于 2012-02-09T09:34:14.800 に答える