$ bundle install -path vender/bundle の path vender/bundle ってなんだ??
はじめに
いろんな技術記事に書いてあるので、何気なく使っていたコマンドのこれ↓
$ bundle install -path vendor/bundle
気持ち悪くなってきたのでメンターの先生に質問してみたので教えて頂きました。
この記事を読むメリット
$ bundle install -path vendor/bundle
を上手く使えるようになる。bundle list
とgem list
の違いが分かる。
まず結論
-path vendor/bundle
でpath指定するとrailsとかのgemをインストールした時に
それぞれアプリケーションごとに管理するbundle list
に分けてインストールしてくれる。
そもそもbundle list
とgem list
というものがある
簡単に言うと、
bundle list
とは、アプリケーションごとに管理しているGemfileのことで
gem list
とは、PC(グローバル)上で管理しているsystem gemsのこと。
2つに共通することとして、両方ともgemの管理リストです。
実際に管理している中身(gem)を見てみる
今回見やすさ考慮の為、railsだけに注目して中身を確認します。
$ gem list | grep rails (省略) rails (5.2.2, 5.2.1) →PC(グローバル)上で管理しているrailsのバージョンは「5.2.2」, 「5.2.1」ということが分かる。
$ bundle list | grep rails (省略) * rails (5.2.2) →今いるアプリケーションで管理するGemfileでのrailsのバージョンは「5.2.2」ということが分かる。
本題に戻る
$ bundle install —path vendor/bundle
が行っていることは、bundle install
をbundle list
に指定しているコマンドになります。
ちなみに$ bundle install
だけだと、デフォルトでgem list
に指定されインストールされるようになっているらしいです。
参照サイト:https://bundler.io/v2.0/man/bundle-install.1.html#OPTIONS
終わり
教えて頂いたメンターの先生には感謝しつつ、やはり全体的な理解を大まかにしないといけないなと自覚しました。 ただ、気にしすぎてもコンピュータの分野は切りがないので、上手く知っていけるようにしたい。
ご指摘等なにかある方はぜひコメントいただければ幸いです。