bundle installはどのパスに対してすべきなのか問題
今まであまり意識していなかったのだが、bundle installコマンドを打ったときにGemはどこにインストールされるのか?という問題がある。オプションなしにこのコマンドを実行した場合、Gemはシステム側(すなわちusr/lib/ruby/gems/云々)に入ってしまうわけだが、一つの環境で複数アプリを構築している場合はこれだと困るし、何より各アプリごとにGemfileを用意している意味が無い。というわけで、bundle installはパスを指定すべきである、ということ。
% bundle install --path vendor/bundle
Railsの場合はvendor/bundleディレクトリがあるので、ここを明示的に指定してやれば良い。これでGemも含めてアプリ内で「閉じた」状態にすることができる。
まぁこのへんの話は今更自分が書くまでもなく、いくつか参考になるエントリーがあった。ただ、自分が使っていた有名なオンラインのRoRチュートリアルにはこのことが書かれてなかったので、書き留めた次第。
- Rails開発環境の構築(rbenvでRuby導入からBundler、Rails導入まで) - Qiita [キータ]
- Bundler再履修: bundle execって何? gemはどこに入るの? - memo.yomukaku.net
で、先日のエラーについてもこれが原因ではないかと思ったのだが。。。そんなことはありませんでした。