CentOSにRailsをインストールしてみる

VirtualBoxにインストールしたCentOSの環境に、Railsをインストールしてみる。

今回は、下記の3つのパターンのインストールを試してみた。
・【パターン1】手っ取り早くRailsをインストールする場合
・【パターン2】Ruby2.0/Rails4.0をインストールする場合
・【パターン3】rbenvを使ってRuby2.0/Rails4.0をインストールする場合

【パターン1】手っ取り早くRailsをインストールする場合

Ruby on Rails(CentOS)のインストールメモ - たまねぎIT戦士日誌・めも
http://d.hatena.ne.jp/makky0126/20130507/1367929323

を参考にして、とりあえずRailsをインストールしてみる。

まずは必要なパッケージをインストールする。

$ sudo yum -y install ruby ruby-devel rubygems
$ sudo yum -y install gcc gcc-c++ make openssl-devel zlib-devel
$ sudo yum -y install sqlite-devel

次に、必要なRubyのパッケージをgemでインストールする。

$ sudo gem install --no-ri --no-rdoc rack -v 1.4.5
$ sudo gem install --no-ri --no-rdoc rails -v 3.2.13
$ sudo gem install --no-ri --no-rdoc sqlite3
【補足】
yumrubyをインストールすると、バージョン1.8.7がインストールされる。
rackやrailsでは、バージョンを指定して古いバージョンをインストールしないとしないとエラーになる。

ERROR:  Error installing rails:
        activesupport requires Ruby version >= 1.9.3.
【補足】
 --no-ri --no-rdocをつけると、インストールが早く終る。

これで環境は整ったので、Railsでアプリケーションを作成してみる。

$ rails new sample

作成したアプリケーションのディレクトリに移動する。

$ cd sample

このまま「rails server」するとエラーになる。

/usr/lib/ruby/gems/1.8/gems/execjs-2.0.2/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)

このエラーの対応として、Gemfileを開いて「gem 'therubyracer'」を追加し、bundle installを実行する。(この対応が何をやっているのかよく分かってないが)

$ vi Gemfile
gem 'therubyracer'	←追加
$ bundle install

以上で設定は終わりなので、WEBrickを起動する。

$ rails server

下記のURLにアクセスすると、Railsのページが表示される。
http://サーバーのアドレス:3000/

ただ、yumでインストールするRubyのバージョンは1.8.7と古いので
次にRuby2.0のインストールを試す。


【パターン2】Ruby2.0/Rails4.0をインストールする場合

ぢみへんプログラミング日誌 CentOS6.4 + ruby2.0 + rails4 インストール備忘録
http://jimiprg.blog.shinobi.jp/ruby%20on%20rails/centos6.4%20-%20ruby2.0%20-%20rail

を参考にしながら、Rubyの2.0とRailsの4.0をインストールする。

また、インストールの手順は、VirtualBoxにインストールしたCentOSの直後から改めて始める。


とりあえずrootユーザーになる。

$ su -

まずは、必要なパッケージをインストールする。

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

次に、ftp://core.ring.gr.jp/pub/lang/ruby/2.0/Rubyのバージョンをチェックし、
最新のRubyをダウンロードする。
(現時点では「ruby-2.0.0-p353」が最新だったので、これで説明を進める)

# cd /tmp
# wget ftp://core.ring.gr.jp/pub/lang/ruby/2.0/ruby-2.0.0-p353.tar.gz

ダウンロードしたRubyをインストールする。

# tar xzf ruby-2.0.0-p353.tar.gz
# cd ruby-2.0.0-p353
# ./configure --with-opt-dir=/usr/local --enable-shared --enable-option-checking
# make
# make test
# make install

あとは【パターン1】と同様にrailsをインストールする。

# gem install --no-ri --no-rdoc rails
# gem install --no-ri --no-rdoc sqlite3

(rackはインストールしなくても動いた。不要?よく分かっていない。)

これでRubyRailsのインストールは完了。
インストールされたバージョンも下記のとおり。

# ruby -v
ruby 2.0.0p353 (2013-11-22 revision 43784) [x86_64-linux]
# rails -v
Rails 4.0.2

あとは、通常のユーザーに戻って、【パターン1】と同様にRailsのアプリケーションを作成し、実行する。

$ rails new sample
$ cd sample
$ vi Gemfile
gem 'therubyracer'	←追加
$ bundle install
$ rails server

以上で、下記のURLにアクセスすると、Railsのページが表示される。
http://サーバーのアドレス:3000/

ただ、Ruby on Rails: Downloadではrbenvが推奨されてるみたいなので
次にrbenvでのRuby2.0のインストールを試す。


【パターン3】rbenvを使ってRuby2.0/Rails4.0をインストールする場合

[CentOS]rbenvコマンドを使ったRubyインストール方法 - Qiita [キータ]
http://qiita.com/IK12_info/items/58326bddc0fa9740e170

の記事を参考にしながら、rbenvを使ってRubyの2.0をインストールしてみる。

また、インストールの手順は、VirtualBoxにインストールしたCentOSの直後から改めて始める。

ひとまず必要なパッケージをインストールしておく。

$ sudo yum -y install git
$ sudo yum -y install gcc gcc-c++ make openssl-devel zlib-devel
$ sudo yum -y install sqlite-devel

rbenvをインストールする。
手順はrbenvに書かれているとおり。

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

Rubyプラグインruby-buildをインストールする。
こちらも手順はruby-buildに書かれているとおり。

$ git clone https://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build
$ cd ~/.rbenv/plugins/ruby-build
$ sudo ./install.sh

以上で、rbenvのインストールは終わり。
以下のコマンドで、インストール可能なRubyのバージョンが確認できればOK。

$ rbenv install -l

次に、rbenvでRubyをインストールする。

rbenv install 2.0.0-p353

なんかよく分からないが、ことあるごとにrehashしといたほうがいいみたい。

rbenv rehash

2.0.0-p353をデフォルトに設定し、

rbenv global 2.0.0-p353

バージョンの確認で、2.0.0-p353に「*」が付いていればOK。

rbenv versions
 * 2.0.0-p353 (set by /home/dev/.rbenv/version)


後は、【パターン2】と同様に、Railsをインストールする。

$ gem install --no-ri --no-rdoc rails
$ gem install --no-ri --no-rdoc sqlite3

(一般ユーザーとしてインストールすることになるが、これでいいのだろうか?よくわからない)

再度、rehashしないとrailsが認識されない。

$ rbenv rehash

【パターン2】と同様にRailsのアプリケーションを作成する。

$ rails new sample
$ cd sample
$ vi Gemfile
$ gem 'therubyracer'	←追加
$ bundle install
$ rails server

以上で、下記のURLにアクセスすると、Railsのページが表示される。
http://サーバーのアドレス:3000/

【rbenvの参考記事】
以下の記事も参考になりました。

Ruby2.0 + Rails4.0 + Passenger + Apache + MySQL + CentOS6.4 + Logwatch + 高速化設定 ( Webサーバー構築四苦八苦 4th Day, Ruby on Rails編 ) - Qiita [キータ]
http://qiita.com/mugyuu/items/88cb83a0a14670540719

rbenv と ruby-build で Ruby をインストールして管理 〜 CentOS6 | EasyRamble
http://easyramble.com/install-ruby-with-rbenv.html

結論

Ruby(Rails)の環境構築は難しい。