Ruby on Rails(CentOS)のインストールメモ

CentOS6.4上へRuby on Railsの環境を構築する。

[1]Rubyをインストールする。

# yum -y install ruby
# yum -y install ruby-devel

[2]RubyGemsをインストールする。

# yum -y install rubygems

[3]各種コンパイラをインストール

# yum -y install gcc gcc-c++ openssl-devel zlib-devel make patch sqlite-devel

[4]libyamlを取得、make、make install の実行

# wget http://pyyaml.org/download/libyaml/yaml-0.1.4.tar.gz
# tar -zxf yaml-0.1.4.tar.gz
# cd yaml-0.1.4
# ./configure
# make
# make install

[5]gemコマンドにて、railsモジュール群をインストール
※ここでは、version 3.2.13を指定してインストール。
※バージョン指定しなければ、現在の最新版をインストールする。

# gem install rack
# gem install rails -v 3.2.13
# gem install sqlite3

[6]railsコマンドでサンプルを作成し、railsを起動してみる。

# rails new sample

以下のようなエラーが出たら…

# rails new sample
/usr/lib/ruby/site_ruby/1.8/rubygems.rb:233:in `activate': can't activate rack (~> 1.4.5, runtime) for ["actionpack-3.2.13", "railties-3.2.13"], already activated rack-1.5.2 for ["rack-ssl-1.3.3", "railties-3.2.13"] (Gem::LoadError)
from /usr/lib/ruby/site_ruby/1.8/rubygems.rb:249:in `activate'
from /usr/lib/ruby/site_ruby/1.8/rubygems.rb:248:in `each'
from /usr/lib/ruby/site_ruby/1.8/rubygems.rb:248:in `activate'
from /usr/lib/ruby/site_ruby/1.8/rubygems.rb:249:in `activate'
from /usr/lib/ruby/site_ruby/1.8/rubygems.rb:248:in `each'
from /usr/lib/ruby/site_ruby/1.8/rubygems.rb:248:in `activate'
from /usr/lib/ruby/site_ruby/1.8/rubygems.rb:1082:in `gem'
from /usr/bin/rails:18
#

今インストールされているrack(ここではバージョン1.5.2)をアンインストールし、
バージョン1.4.5のrackをインストールする。

# gem uninstall rack -v 1.5.2
# gem install rack -v 1.4.5

[7]sampleを起動する

# cd sample
# rails s

ここで、以下のようなエラーが出た場合…

# rails s
/usr/lib/ruby/gems/1.8/gems/execjs-1.4.0/lib/execjs/runtimes.rb:51:in `autodetect': Could not find a JavaScript runtime. See https://github.com/sstephenson/execjs for a list of available runtimes. (ExecJS::RuntimeUnavailable)
from /usr/lib/ruby/gems/1.8/gems/execjs-1.4.0/lib/execjs.rb:5
from /usr/lib/ruby/gems/1.8/gems/coffee-script-2.2.0/lib/coffee_script.rb:1:in `require'
from /usr/lib/ruby/gems/1.8/gems/coffee-script-2.2.0/lib/coffee_script.rb:1
from /usr/lib/ruby/gems/1.8/gems/coffee-script-2.2.0/lib/coffee-script.rb:1:in `require'
from /usr/lib/ruby/gems/1.8/gems/coffee-script-2.2.0/lib/coffee-script.rb:1
from /usr/lib/ruby/gems/1.8/gems/coffee-rails-3.2.2/lib/coffee-rails.rb:1:in `require'
from /usr/lib/ruby/gems/1.8/gems/coffee-rails-3.2.2/lib/coffee-rails.rb:1
from /usr/lib/ruby/gems/1.8/gems/bundler-1.3.5/lib/bundler/runtime.rb:72:in `require'
from /usr/lib/ruby/gems/1.8/gems/bundler-1.3.5/lib/bundler/runtime.rb:72:in `require'
from /usr/lib/ruby/gems/1.8/gems/bundler-1.3.5/lib/bundler/runtime.rb:70:in `each'
from /usr/lib/ruby/gems/1.8/gems/bundler-1.3.5/lib/bundler/runtime.rb:70:in `require'
from /usr/lib/ruby/gems/1.8/gems/bundler-1.3.5/lib/bundler/runtime.rb:59:in `each'
from /usr/lib/ruby/gems/1.8/gems/bundler-1.3.5/lib/bundler/runtime.rb:59:in `require'
from /usr/lib/ruby/gems/1.8/gems/bundler-1.3.5/lib/bundler.rb:132:in `require'
from /root/sample/config/application.rb:7
from /usr/lib/ruby/gems/1.8/gems/railties-3.2.13/lib/rails/commands.rb:53:in `require'
from /usr/lib/ruby/gems/1.8/gems/railties-3.2.13/lib/rails/commands.rb:53
from /usr/lib/ruby/gems/1.8/gems/railties-3.2.13/lib/rails/commands.rb:50:in `tap'
from /usr/lib/ruby/gems/1.8/gems/railties-3.2.13/lib/rails/commands.rb:50
from script/rails:6:in `require'
from script/rails:6
#

Gemfileへ以下の項目を追加し、bundle install を実行する。

gem 'therubyracer'

bundle installを実行すると、therubyracerをインストールしてくれる。

# bundle install

Using sqlite3 (1.3.7)
Installing therubyracer (0.11.4)
Using uglifier (2.0.1)
Your bundle is complete!
Use `bundle show [gemname]` to see where a bundled gem is installed.

正常に各種モジュールが入っていれば、rails sコマンド実行後、
以下のログが出力され、WEBrickの起動に成功する。
ここでは、ポート番号3000で起動。

# rails s
=> Booting WEBrick
=> Rails 3.2.13 application starting in development on http://0.0.0.0:3000
=> Call with -d to detach
=> Ctrl-C to shutdown server
[2013-05-08 07:39:44] INFO WEBrick 1.3.1
[2013-05-08 07:39:44] INFO ruby 1.8.7 (2011-06-30) [x86_64-linux]
[2013-05-08 07:39:44] INFO WEBrick::HTTPServer#start: pid=37207 port=3000