chroju.dev/blog

the world as code

bundle installはどのパスに対してすべきなのか問題

今まであまり意識していなかったのだが、bundle installコマンドを打ったときにGemはどこにインストールされるのか?という問題がある。オプションなしにこのコマンドを実行した場合、Gemはシステム側(すなわちusr/lib/ruby/gems/云々)に入ってしまうわけだが、一つの環境で複数アプリを構築している場合はこれだと困るし、何より各アプリごとにGemfileを用意している意味が無い。というわけで、bundle installはパスを指定すべきである、ということ。

% bundle install --path vendor/bundle

Railsの場合はvendor/bundleディレクトリがあるので、ここを明示的に指定してやれば良い。これでGemも含めてアプリ内で「閉じた」状態にすることができる。

まぁこのへんの話は今更自分が書くまでもなく、いくつか参考になるエントリーがあった。ただ、自分が使っていた有名なオンラインのRoRチュートリアルにはこのことが書かれてなかったので、書き留めた次第。

で、先日のエラーについてもこれが原因ではないかと思ったのだが。。。そんなことはありませんでした。