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