2012-02-09 10 views
22

Railsの "Gemfile.lock"の目的は何ですか? 私は周りを探していましたが、満足のいく回答は見つかりませんでした。Gemfile.lock Railsで使用しますか?

+0

これに関する最良の資料は、間違いなく記事「[.gemspecとGemfileの役割の明確化]」です(http://yehudakatz.com/2010/12/16/clarifying-the-roles-of- the-gemspec-and-gemfile /)を使用します。それを読んで、このトピックに関するあなたの疑問を全て明らかにします。 – lucapette

答えて

25

あなたはbundler宝石からすべてのドキュメントを読んでください:http://gembundler.com/

GEMFILE.LOCK

インストールバンドルを実行すると、バンドラーはフルネームとそのあなたのすべての宝石の バージョンが持続します(Gemfile(5)に指定されている宝物 の依存関係を含む)をGemfile.lockというファイルに組み込みます。

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

依存解決の仕組みを、(例えば、あなたのGemfile(5)で の依存関係のポイント・リリースの更新宝石)でも一見小さな 変更がされて根本的に異なる宝石につながる可能性があるためすべての依存関係を満たすためには が必要です。

その結果、あなたはGemfile.lockをバージョンコントロールにチェックするべきです(SHOULD)。 リポジトリをチェックアウトするすべてのマシン (プロダクションサーバを含む)は、すべての依存関係をもう一度解決します。これにより、サードパーティのコード の異なるバージョンが使用されます(Gemfile内の宝石5)またはそのいずれかの 依存関係が更新されました。

5

Gemfile.lockあなたのアプリの他の開発者やデプロイメント環境でも、インストールしたばかりのサードパーティ製のコードとまったく同じものが使用されます。

関連する問題