Railsでは様々なgemを利用します。 各gemのペースでどんどんバージョンが上がっていくため、異なるバージョンのgemと組み合わせると、うまく動作しないことがあります。 そこで、bundlerを使うことで、使うgemのバージョンを固定することができます。
Railsのプロジェクトを新規作成するときは、Railsコマンドが必要になります。
gem install rails
でrailsコマンドを使えるようにします。(railtiesでもOK)
なお、既存のプロジェクト(bundlerでgemを管理していることが前提)ではbundlerからrailsコマンドを使うので、インストールはしなくてもOKです。
railsのgemのインストールが終わったら、次のコマンドでプロジェクトを作成します。
rails new ProjectName --skip-bundle
cd ProjectName
bundle install --path .bundle
--skip-bundle
オプションは、rails new
を実行した後に、bundle install
を実行させないためです。(--path
オプションを付けて実行させたいため。)
--path
オプションをつけると、その場所にgemがインストールされます。
こうすることで、システム側のgemにはインストールされないので、他に影響が及びません。
既存のプロジェクトではプロジェクトディレクトリにcdして、bundle install --path .bundle
をのみ実行すれば良いです。
プロジェクト作成後は、railsコマンドを使うときはbundle exec
を使います。
bundle exec rails
bundle exec
を使うと、bundlerで管理されているgemがロードされます。(逆に使わないと、エラーが出ると思います)
他にも、rakeコマンドなどもbundle exec rake
と実行します。
bundle exec
は長いので、alias be='bundle exec'
などのようにエイリアスを作ると便利です。