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 チュートリアル」の環境構築の章を参考にした。
準備
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コマンドが打てるようになった!
以上!