【bundlerまとめ】bundle installの--path vendor/bundleって何?
- 結論
- プロジェクト管理の必要性について
- bundlerって何?
- どうして--path vendor/bundle をつけるの?
- 実例
- bundle execって何?
- bundle installのオプションまとめ
- 参考
結論
bundle install --path vender/bundle
vender/bundle
配下にgemをインストールします。
アプリケーションごとにgemをインストールすることができるので、システムに依存しないアプリケーションを構築することができます。 複数アプリケーションがローカルPC内に存在する場合や複数人と開発を行う際に役に立ちます。
プロジェクト管理の必要性について
現場では一つのアプリケーションだけを管理・開発することはまずありません。 個人でRailsアプリケーションを開発している人はそれだけでローカルPC内に複数のアプリケーションが存在します。
gemはRailsアプリケーションごとに管理することもローカルPC内で管理することもできます。 ローカルPCのgemはそれぞれこれまでにインストールしてきたgemがあります。みんなローカルPCにあるgemは同じでないです。
ローカルPCでgemを管理して作業をしてしまうと、私のPCではアプリケーションが動作するがあの人のPCでは動作しないという現象が起きてしまいます。 個々人の開発環境に左右されず、アプリケショーンを正常に動作させる必要があります。
bundlerって何?
アプリケーションプロジェクト内で使用するパッケージ管理システムです。
bundlerを使うことでアプリケーションプロジェクトごとにgemを管理することができます。 同じようなものにrbenvが挙げられます。 rbenvはgemではなく、rubyのバージョンをアプリケーションごとに管理します。
どうして--path vendor/bundle
をつけるの?
--path vendor/bundle
をつけることでアプリケーションにgemをインストールすることができます。
具体的にはvender/bundle配下にgemがインストールされるようになります。
実例
- 実行
$ bundle install --path vender/bundle
vendor/bundle配下にgemがインストールされる
Project/.bundle/configにパスが設定される
Project/.bundle/config
--- BUNDLE_PATH: vendor/bundle BUNDLE_DISABLE_SHARED_GEMS: '1'
bundle execって何?
アプリケーションにインストールされたgemでアプリケーションを実行することができます。
例えばRailsサーバーを起動する時にrails s
を実行するとシステムのgemを元にサーバーを起動し、
bundle exec rails s
を実行するとアプリケーションのgemを元にサーバーを起動します。
bundle installのオプションまとめ
構文
bundle install --path <フォルダ名>
システム(PC)にインストール
bundle install
Railsアプリケーションにインストール
bundle install --path vendor/bundle
本番用以外のgemをインストール
bundle install --without production
開発・テスト環境以外のgemをインストール
bundle install --without development test