ソースコードから理解する技術-UnderSourceCode

手を動かす(プログラムを組む)ことで技術を理解するブログ

CentOS上でのRuby on Railsの開発環境構築 - デバッグやRspecなど

Ruby on Rails 4.0 が間もなくリリース」されるらしいですが、CentOS6.0にRails 3.2 の開発環境を構築しました。

なぜCentOS上に環境を構築したかというと
・Windows上でのRSpecの起動速度の遅さに我慢ならなかった(デバッグしたいときはsporkは使えない?)
・かといってエディタ等、使い慣れたツールをWindowsで使いたい
・仕事で行う場合、Windowsで開発する可能性が高いのでは?
といった理由からです。

なので厳密にはVirtualBox上にCentOSを入れ、そこに環境を構築しました。
そしてWindowsとCentOSとで共有できるフォルダを設定し、その中にRailsのプロジェクトは作成します。
こうすることで
Railsの実行はCentOS上で
・ファイルの操作はWindows上で共有フォルダ内のソースを見ながら
という形で開発することができます。

前置きが長くなりましたが、今回構築したモノのバージョンは以下の通りです。
CentOS Linux release 6.0 (Final)
ruby 1.9.3p125
Rails 3.2.8

以下が行った作業です。

◆基本的なインストール手順
RoRのインストールについては、Ruby on Rails開発環境をCentOS6にインストールする を参考にさせて頂きました。
ただ、自分の環境ではエラーが出たり、デバッグRSpecも行いたいので、さらに作業を続けました。

Railsの起動でエラー
rails s でサーバーを起動するとCould not find a JavaScript runtime.というエラーが出ました。
対応は、Gemfileの書きの行のコメントアウトを外し、再度 bundle installすると解決しました。
(とはいってもbundle installでもエラーが起きたのですが・・・)


gem 'therubyracer', :platforms => :ruby

◆bundle installでエラー
bundle installを実行するとg++: コマンドが見つかりませんでしたというエラーがでました。
対応は、以下のコマンドを実行し、g++をインストールしました。


sudo yum install gcc-c++

ruby-debugのインストール
gemでruby-debugをインストールするとFailed to build gem native extension.というエラーがでました。
ruby-debugではなく、ruby-debug19を指定しなければならないようです。


sudo gem install ruby-debug19

◆pgのインストール
heroku上で動いているアプリを実行するため、pgを以下のコマンドでインストールしました。


sudo yum install postgresql-devel
sudo yum install postgresql-contrib
bundle install

Railsの起動でエラー(2回目)
先ほどとは別のアプリをrails s で起動すると
An error occurred while installing nokogiri (1.5.5), and Bundler cannot continue.
というエラーがでました。
ノコギリのサイトを参考に、以下のコマンドでインストールしました。


sudo yum install -y gcc ruby-devel libxml2 libxml2-devel libxslt libxslt-devel
sudo yum install -y rubygem-nokogiri

以上で、CentOS上でのRailsの実行とデバッグRspecの実行とデバッグを行う開発環境ができました。