$ bundle install -path vender/bundle の path vender/bundle ってなんだ??

はじめに

いろんな技術記事に書いてあるので、何気なく使っていたコマンドのこれ↓

$ bundle install -path vendor/bundle

気持ち悪くなってきたのでメンターの先生に質問してみたので教えて頂きました。

この記事を読むメリット

  • $ bundle install -path vendor/bundleを上手く使えるようになる。
  • bundle listgem listの違いが分かる。

まず結論

-path vendor/bundleでpath指定するとrailsとかのgemをインストールした時に それぞれアプリケーションごとに管理するbundle listに分けてインストールしてくれる。

そもそもbundle listgem 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 installbundle listに指定しているコマンドになります。

ちなみに$ bundle installだけだと、デフォルトでgem listに指定されインストールされるようになっているらしいです。

参照サイト:https://bundler.io/v2.0/man/bundle-install.1.html#OPTIONS

終わり

教えて頂いたメンターの先生には感謝しつつ、やはり全体的な理解を大まかにしないといけないなと自覚しました。 ただ、気にしすぎてもコンピュータの分野は切りがないので、上手く知っていけるようにしたい。

ご指摘等なにかある方はぜひコメントいただければ幸いです。