teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

追記

2016/09/11 11:11

投稿

tkmtmkt
tkmtmkt

スコア1800

answer CHANGED
@@ -1,3 +1,10 @@
1
1
  `Gemfile.lock` 削除したらだめです。
2
2
 
3
- Railsの仕組みを調べたわけではないので間違いがあるかもしれませんが、挙動から推測するとアプリケーション起動時に`Gemfile.lock`の内容と実行環境にインストールされているライブラリをチェックして、相違箇所があれば`bundle install`実行を促すメッセージ表示されていると思います。
3
+ Railsの仕組みを調べたわけではないので間違いがあるかもしれませんが、挙動から推測するとアプリケーション起動時に`Gemfile.lock`の内容と実行環境にインストールされているライブラリをチェックして、相違箇所があれば`bundle install`実行を促すメッセージ表示するといった処理を行っているものと思います。
4
+
5
+ `bundle install`と`Gemfile.lock`の関係については、以下のような処理を行っているんだろうな程度に考えています。
6
+
7
+ * `bundle install`実行時に`Gemfile.lock`が無かったら、`gemfile`を読み込んで`Gemfile.lock`を生成し、`Gemfile.lock`の内容に合わせてライブラリをインストールする。
8
+ * `bundle install`実行時に`Gemfile.lock`があったら、`Gemfile`と`Gemfile.lock`の相違点をチェックし、違いがあれば`bundle update`実行を促すメッセージを表示し、相違点がなかったら`Gemfile.lock`の内容に合わせてライブラリをインストールする。
9
+
10
+ 正確なところが知りたければ、Railsのソースを読むのが一番だと思いますが。