gemとは?
2つの意味があります。
- Rubyのライブラリ のことです。詳細はこちら。
- gemを管理するパッケージ管理ツールの名前
ただ、gemというツールでパッケージを管理すると、依存関係で問題が発生することがあります。
そこでBundlerが登場します。
bundlerとは?
依存関係を考慮してgemを管理してくれるパッケージ管理ツールです。
https://bundler.io
Gemのインストール方法は大きく2種類
- 端末全体で使えるタイプ(globalインストール)
mac,windows内のどこでも使えるようになる。 - プロジェクト(特定の階層)でのみ使えるタイプ(localインストール)
作っているアプリの中で使えるようになる。
結論
bundle exec
をつける = ローカルインストールのgemが呼ばれる
例)
bundle exec rails g controller users
bundle exec
をつけない = グローバルインストールのgemが呼ばれる
参考
bundleをつけて実行しておけばOKかなくらいに思ってたので、これで理解できました。