よく、ブログやqiitaなど参考サイトを見ていて、出てくる「bundle exec」
あんまり、意味も正確に把握せずに使ってたけど、結局なに?
rails db:migrate と bundle exec rails db:migrate などのbundle execアリナシの違いをザックリ整理します。
bundle execをつけると
今いるプロジェクト内で、Gemfile.lockに書かれているバージョンのgemが動き、コマンドを実行される。
bundle execをつけないと
Gemfile.lockに基づかずに、システム側のgemを指定し、コマンドが実行される。
なのでgemのバージョンはシステム中のバージョンで実行される。
bundlerとは
- プロジェクト内で使うGemのパッケージ管理ツール。Gemをプロジェクト単位で管理することができるもの (rbenvのGem版のようなもの)
以上、ザックリ。
参考サイト
https://www.eiji56.com/2018/08/bundle-exec/
https://qiita.com/dawn_628/items/1821d4eef22b9f45eea8