rbenvでrailsの動作環境を構築

rbenvインストール

git clone git://github.com/sstephenson/rbenv.git .rbenv
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(rbenv init -)"' >> ~/.bashrc

ruby-buildインストール

cd /usr/local/src
sudo git clone git://github.com/sstephenson/ruby-build.git
cd ruby-build
sudo ./install.sh

ruby(今回は1.9.3-p0)をインストールしてデフォルトに指定

rbenv install 1.9.3-p0
rbenv global 1.9.3-p0

Railsで利用するライブラリ郡は各プロジェクト毎にbundlerで管理するようにしたいので

  • GEMでbundlerのみをインストール
  • bundlerを一旦使ってrailsをインストール
  • railsでプロジェクト(example)を作成
  • railsをインストールするために使ったbundlerの環境を削除
  • example内で必要なライブラリをインストール

という手順を踏む

bundlerインストール

rbenv exec gem install bundler

一旦rails (3.1.1) をインストールしてexampleを作成

cat << EOS > Gemfile
source "http://rubygems.org"
gem "rails", "3.1.1"
EOS

bundle install --path vendor/bundle
bundle exec rails new example

rm -f Gemfile
rm -f Gemfile.lock
rm -rf .bundle
rm -rf vendor/bundle

bundle installする際に--path vendor/bundleすることで本来$GEM_HOMEに入るライブラリがvendor/bundle下に配備される。vendor/bundleに入ったファイルを使ってコマンドを実行したい場合は上記のようにbundle exec 〜のようにすればよい。
後はexample内でインストールを行う際も--path vendor/bundleオプションをつけてbundle installすることでプロジェクト内に閉じた状態でライブラリ郡をインストールすることができる。

exampleでライブラリをインストールしてサーバを起動

cd example
bundle install --path vendor/bundle
bundle exec rails server

こんな感じ