Installation

rvm + ruby-1.9.x

Rails3 には Ruby 1.9 が必要です。rvm でインストールする手順です。

% curl -L "get.rvm.io" | bash -s stable

# rvm requirements:
% yum install gcc-c++ patch readline readline-devel zlib zlib-devel libyaml-devel libffi-devel openssl-devel make bzip2 autoconf automake libtool bison

# nokogiri:
% yum install libxml2-devel libxslt-devel

% rvm install 1.9.3 -C --with-opt-dir=$HOME/.rvm/usr
% rvm use 1.9.3

bundler

bundler を使って Rails 環境を作る手順です。gem パッケージをプロジェクトディレクトリ内に持ちます。

Rails プロジェクトのディレクトリ直下に .rvmrc を置いておきます。この方法で常に ruby-1.9.x に切り替わるようにしておきます。

% mkdir /path/to/rails/sandbox
% cd /path/to/rails/sandbox
% vi .rvmrc
rvm use 1.9.3

# cd . した時に .rvmrc が読み込まれます。初回は Warning が表示されます。
% cd .
...
y[es], n[o], v[iew], c[ancel]> y
Using .../.rvm/gems/ruby-1.9.3-p286

Gemfile を作成します。

source 'https://rubygems.org'

gem 'therubyracer', '0.10.2'
gem 'unicorn', '4.4.0'

gem 'rails', '3.2.8'

gem 'mysql2', '0.3.11'

# Gems used only for assets and not required
# in production environments by default.
group :assets do
  gem 'sass-rails', '3.2.5'
  gem 'coffee-rails', '3.2.2'
  gem 'uglifier', '1.2.3'
end

gem 'jquery-rails', '2.0.2'

group :development, :test do
  gem 'rspec-rails', '2.11.0'
  gem 'spork', '0.9.2'
end

group :development do
  gem 'pry-rails', '0.2.2'
end

上記例は以下のパッケージ構成になります。

  • JavaScript runtime に therubyracer を利用
  • アプリケーションサーバに unicorn を利用
  • データベースに mysql2 を利用
  • テストツールに rspec-rails spork を利用
  • コンソールに pry-rails を利用

bundle install で gem パッケージをインストールします。--path オプションで vendor/bundle 以下にインストールするようにします。

% ls -a
. .. .rvmrc Gemfile

% cd /path/to/rails/sandbox
% bundle install --path vendor/bundle
...
Installing railties (3.2.6)
Installing rails (3.2.6)
Your bundle is complete! It was installed into ./vendor/bundle
...

% ls -a
. .. .bundle/ .rvmrc Gemfile Gemfile.lock vendor/

rails コマンドは bundle exec を付与して実行できます。

% rails --version
/usr/bin/which: no rails in ..
# bundle exec 経由で rails コマンドが実行できます。
% bundle exec rails --version
Rails 3.2.8

カレントディレクトリに Rails プロジェクトを作成します。

# -d 利用するデータベースを指定
# --skip-test-unit テストツールに Test::Unit を利用しない
% bundle exec rails new . -d mysql --skip-test-unit
       exist
      create  README.rdoc
      create  Rakefile
      create  config.ru
      create  .gitignore

Gemfile の上書きが確認されますが n - No を選択します。

    conflict  Gemfile
Overwrite /path/to/rails/sandbox/Gemfile? (enter "h" for help) [Ynaqdh]

rails server でサーバを起動します。http://(ホスト名):3000 で確認できます。

% bundle exec rails server

CTRL-C でサーバを停止します。