カタカタブログ

SIerで働くITエンジニアがカタカタした記録を残す技術ブログ。Java, Oracle Database, Linuxが中心です。たまに数学やデータ分析なども。

Cent OS 6.4にRuby on Rails 4環境を構築してみる

前回、MacにVagrantをインストールし、Cent OS 6.4の仮想マシン環境を構築した。
MacにVagrant (1.6.5) でCent OS(6.4)をインストールしてみた - カタカタブログ

今回は、その環境にRuby on Rails 4の開発環境を構築する。ネットでググればこの手の記事は山ほどひっかかるが、ベースとなる参照先は公式の「Ruby on Rails チュートリアル」の環境構築の章を参考にした。

http://railstutorial.jp/

準備

Cent OS6.4をインストールした直後の状態から実施しているので、まず開発ツールをインストールしておく。

[root@localhost ~]# yum -y groupinstall "Development Tools”

続いて開発用ユーザ(dev)を作成する。

[root@localhost ~]# useradd dev
[root@localhost ~]# passwd dev
Changing password for user dev.
New password: 
BAD PASSWORD: it is WAY too short
BAD PASSWORD: is too simple
Retype new password: 
passwd: all authentication tokens updated successfully.

以降、作成したdevユーザで作業する。

rbenvをインストール

Rubyの開発環境構築にあたり、複数バージョンのRubyを切り替えることのできるrbenvをインストールする。

まずgitが入っていることを確認する。githubから各種プラグインやツールをダウンロードするために使用する。なければgitをインストールする。

[dev@localhost ~]$ git --version
git version 1.7.1

gitはインストールされているよう。

rbenvをインストールする。といってもgithubからcloneし、.bashrcを編集するだけ。
rbenvはdevユーザの$HOME/.rbenvにインストールすることにする。

[dev@localhost ~]$ git clone https://github.com/sstephenson/rbenv.git ~/.rbenv

.bash_profileにPATH追加とrbenv init実行処理を追加する。

[dev@localhost ~]$ echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bash_profile
[dev@localhost ~]$ echo 'eval "$(rbenv init -)"' >> ~/.bash_profile
[dev@localhost ~]$ cat ~/.bash_profile
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# User specific environment and startup programs
PATH=$PATH:$HOME/bin
export PATH
export PATH="$HOME/.rbenv/bin:$PATH"
eval "$(rbenv init -)"

再度devユーザでログインし直し、rbenvが使えるようになったことを確認する。

[dev@localhost ~]$ rbenv
rbenv 0.4.0-129-g7e0e85b
(・・・略)

正しく使えるようになっている。

rbenvにruby-buildを追加する。rbenvはRubyの切り替え機能のみでインストール機能はないため、ruby-buildを使うことでインストールも自動で行うことが可能となる。これもgithubからrbenvのプラグインディレクトリにcloneするだけ。

[dev@localhost ~]$ git clone https://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build

Rubyインストール

rbenvがセットアップできたので、Rubyをインストールする。チュートリアルによると、Ruby 2.0.0が最適らしいので、それを入れてみる。

まず標準でインストールされているRubyバージョンを確認しておく。

[dev@localhost ~]$ ruby -v
ruby 1.8.7 (2011-06-30 patchlevel 352) [x86_64-linux]

1.8.7が入っている。

rbenvで入手できるパッケージの一覧を確認する。

[dev@localhost ~]$ rbenv install -l
(・・・略)
  2.0.0-p576
(・・・略)

2.0.0系は「2.0.0-p576」が最新のもよう。

rbenvでruby 2.0.0をインストールする。

[dev@localhost ~]$ rbenv install 2.0.0-p576
Downloading ruby-2.0.0-p576.tar.gz...
-> http://dqw8nmjcqpjn7.cloudfront.net/9f5a593d81768c856155be6b2d2e357b961b5c43e04ba54c1ee511987fac2b66
Installing ruby-2.0.0-p576...
Installed ruby-2.0.0-p576 to /home/dev/.rbenv/versions/2.0.0-p576

ruby2.0.0をglobalのRuby(環境全体で使用するruby)に設定する。

[dev@localhost ~]$ rbenv global 2.0.0-p576
[dev@localhost ~]$ ruby -v
ruby 2.0.0p576 (2014-09-19 revision 47628) [x86_64-linux]

バージョンが2.0.0になった。

GemでBundlerをインストール

railsインストールの前にgemを整備する。まずgemでBundlerをインストール。

[dev@localhost ~]$ rbenv exec gem install bundler
Fetching: bundler-1.7.4.gem (100%)
Successfully installed bundler-1.7.4
Parsing documentation for bundler-1.7.4
Installing ri documentation for bundler-1.7.4
1 gem installed

gemが.rbenv以下のgemを使用していることを確認する。

[dev@localhost ~]$ which gem
~/.rbenv/shims/gem
[dev@localhost ~]$ gem -v2.0.14

正しく.rbenv以下のgemを見ているよう。

gemでrails4をインストール

ようやく準備が整ったのでrails4をインストールする。rails4はgemでインストールする。

[dev@localhost ~]$ gem install rails --no-ri --no-rdoc

・・・上記のコマンドを実行したが、1時間ほど経過しても応答がなく、メッセージも一切表示されなかった。おかしいとおもって一旦中断し、調査したところ、以下に事例があった。ネットワーク系のタイムアウト遅延が発生しているよう。
http://www.ideaxidea.com/archives/2013/08/resolv.html

上の文書によると、/etc/resolve.confに以下の1行を追加すると解消するらしい。

options single-request-reopen

やってみる。いったんvagrantユーザに戻り、sudoで管理者権限を得てファイルを編集する。

[dev@localhost ~]$ exit
logout
[vagrant@localhost ~]$ sudo vi /etc/resolv.conf

再度gemでrailsインストールコマンドを実行する。

[dev@localhost ~]$ gem install rails --no-ri --no-rdoc
Successfully installed i18n-0.6.11
Fetching: thread_safe-0.3.4.gem (100%)
(・・・略)
Fetching: rails-4.1.6.gem (100%)
Successfully installed rails-4.1.6
25 gems installed

今度はすぐにインストールが開始され、2,3分程度でインストールが完了した!

最後に、railsがインストールされたことを確認しておく。

[dev@localhost ~]$ rails -v
Rails 4.1.6

正しくrailsコマンドが打てるようになった!

以上!