Bundlerの使い方について、今までは使っていますが、細かくは分かっていなかった。RVMrbenvとの比較を調べた時、rbenv+bundlerでgemを管理するのは十分という記事があったので、改めてbundlerを調べてみた。

基本

  • Gemfileに必要なGemを記入した上で、bundle installでインストール
    • デフォルトはシステムのruby/gemsにインストール
    • bundle install --path vendor/bundleでインストールパス指定できる
    • 一度指定すれば、その後bundle installでも前回のパスにインストール
  • bundle updateで更新
  • bundle execbundleよりインストールしたgemコマンドを実行する

gem管理のルールの考え

  • 共通で使うgemは、普通にgem install ...でシステムにインストール
    • bundle自体
    • その他
  • プロジェクト毎に、bundle install --path ...でプロジェクト配下にインストール
    • bundle exec ...でプロジェクトのコマンドを実行する

問題点

  • zshを使ってるので、コマンドの補完はいろいろお世話になってます。例え、rakeを入力すると、実行できるタスクが補完してくれる。bundle exec rakeだと、当たり前だけど、補完がしてくれなくなってしまう
    • bundle execを省略してコマンドを実行できるという記事はいろいろありますが、自動補完に関する解決方法はなさそう

TODO : zshでbundle execより実行するコマンドの自動補完