<はじめに>
Railsで自作アプリを作る過程でgemをインストールした時に、
ふと"bundle install"と"bundle update"の違いが気になりました。
調べてみたので備忘録として投稿します!
"bundle install"も"bundle update"も、
railsアプリにgemをインストールするという点では同じです。
しかし、インストールのされ方が異なるため、しっかり違いを理解したいところです。
※操作を間違えると、エラーが発生してアプリが動かなくなることもあります!
bundle install = bundlerを使ってGemfileからgemをインストールするコマンド
Point:①Gemfile.lockにないgemをGemfileから探し、見つけたgemをinstallする
②--pathオプションを使えば、どこにインストールするか指定できる(よくあるのはvendor/bundle)
③アプリの中にインストールすればgemはアプリの中に、もし指定がなければ
~/.rbenv/versions/projectのrubyバージョン/lib/ruby/gems/projectの
rubyバージョン(x.x.0)/gemsにインストールされる。
bundle update = Gemfile.lockに書かれている内容は無視して、
Gemfileに書かれているgemを全てインストールするコマンド
Point:①Gemfile.lockの中身に関係なく、Gemfileに書かれているgemをupdateする。
②updateできるgemがあれば、Gemfile.lockmのバージョンをupdateする。
こうなると、このupdateにより今まで動いていたアプリが急に動かなくなる可能性もあります、、
さらに、チーム開発においてはGemfile.lockを更新してそれをgitであげると、
他の開発メンバーがpullしてフリーズすることも💦
そのため、特に初心者はbundle updateコマンドは慎重に使って、
bundle installだけで統一するように心がけましょう!