Ruby on Rails を開発する環境を Ubuntu上に構築するためのガイダンスです。
特にEclipseにおけるシングルステップ デバッギング環境の構築を目標としたガイダンスです。
今回は前回の記事の続編で、Eclipseのインストール、そして、ブレークポイントを設定してのシングルステップ可能なデバッグ環境の構築編です。
Eclipse/JDKのインストール
では、Eclipseをインストールします。EclipseにはJDKが必要なので、JDKとEclipseをダウンロード。
JDKはOracleのサイトから、適切なJDKをダウンロードしてください。
EclipseはEclipseのサイトから、適切なものをダウンロードしてください。Eclipse Standardがお勧めです。
以下はお好みの場所で構いませんが、JDKとEclipseをインストールします。
今回は /usr/java フォルダにインストールすると仮定します。
[bash]
$ sudo mkdir /usr/java
$ sudo mv ~/Downloads/eclipse-standard-kepler-SR1-linux-gtk.tar.gz /usr/java
$ sudo mv ~/Downloads/jdk-7u51-linux-i586.tar.gz /usr/java/
$ cd /usr/java
$ sudo tar xvzf jdk-7u51-linux-i586.tar.gz
$ sudo tar xvzf eclipse-standard-kepler-SR1-linux-gtk.tar.gz
[/bash]
環境変数の設定
これでインストールは完了ですが、このままでは環境変数が存在しないため、Javaが利用出来ません。
~/.bashrcを編集し、以下を追記します。
[bash]
$nano ~/.bashrc
#以下を追記
JAVA_HOME=/usr/java/jdk1.7.0_45
PATH=$PATH:$JAVA_HOME/bin
CLASSPATH=$JAVA_HOME/jre/lib/rt.jar
export JAVA_HOME PATH CLASSPATH
[/bash]
追記が終わったら、上記の追記内容を反映します。(次回ログイン時からは自動的に読み込まれますので、この操作をする必要はありません。)
その後、環境変数 JAVA_HOMEを確認してみます。
[bash]
$ source ~/.bashrc
$ echo $JAVA_HOME
/usr/java/jdk1.7.0_45
[/bash]
Eclipse日本語化
ついでにEclipseの日本語化もしておきましょう。
[bash]
$ wget http://sourceforge.jp/projects/mergedoc/svn/view/trunk/Pleiades/build/pleiades.zip?view=co&root=mergedoc
$ sudo mkdir /usr/java/tmp
$ sudo mv pleiades.zip /usr/java/tmp
$ cd /usr/java/tmp
$ sudo unzip pleiades.zip
$ sudo cp pleiades/features/* /usr/java/eclipse/features/ -R
$ sudo cp pleiades/plugins/* /usr/java/eclipse/plugins/ -R
[/bash]
eclipse.iniの編集
[bash]
$ sudo nano /usr/java/eclipse/eclipse.ini
最後に以下を追記
-javaagent:/usr/java/eclipse/plugins/jp.sourceforge.mergedoc.pleiades/pleiades.jar
[/bash]
では、eclipseを起動してみましょう。
めでたく、日本語化されたEclipseが起動していたらOKです。
[bash]
/usr/java/eclipse/eclipse &
[/bash]
Eclipse、メニューが表示されない不具合の解消
ただし、ここで問題があり! Ubuntu13系では何故かEclipseのメニューが表示されないという不具合がある。
回避するために以下のファイル(eclipse-run)を追加。そして、起動はeclipse直接ではなく、作成したスクリプトキックすることにする。
[bash]
$ sudo nano /usr/java/eclipse/eclipse-run
内容は以下
#!/bin/bash
export UBUNTU_MENUPROXY=0
$(dirname $0)/eclipse
編集がおわったら
$ sudo chmod 755 /usr/java/eclipse/eclipse-run
[/bash]
では、Eclipseを起動してみます。
[bash]
$ /usr/java/eclipse/eclipse-run &
[/bash]
めでたく起動し、メニューも表示されるようになっていればOKです。
Aptanaプラグインのインストール
メニューより、ヘルプ>>新規ソフトウェアのインストールを選択
http://download.aptana.com/studio3/plugin/install
追加ボタンをクリックし、名前にAptana、ロケーションに上記のURLを入力します。
リストに Aptana Studio 3 が表示されますので、チェックを入れ、インストールを行います。

Railsプロジェクトを作成
では、テスト的にRailsプロジェクトを作ってみます。
メニューより ファイル>>新規>> Railsプロジェクトを選択
プロジェクト名は「testproj」、プロジェクトのフルパスは ~/workspace/testproj と仮定します。

では、Railsアプリを起動してみます。
[bash]
$ cd ~/workspace/testproj
$ rails s
エラーメッセージ
Could not find a JavaScript runtime. See https://github.com/sstephenson/execjs for a list of available runtimes. (ExecJS::RuntimeUnavailable)
[/bash]
上記でエラーが出力される場合があります。たいていは何かが足りないからインストールしてくれ的なメッセージだと思いますので、適宜、必要なものをインストールしてやってください。
JavaScript Runtimeがないとのエラーであれば、nodejsをインストールすることで解決します。
[bash]
$ sudo apt-get install nodejs
[/bash]
今後 mysqlを利用することがあるのなら
[bash]
$ sudo apt-get install libmysqlclient-dev
[/bash]
動作確認
では、いよいよRailsアプリの動作確認です。
再度、railsサーバーを起動します。
[bash]
$ rails s
=> Booting WEBrick
=> Rails 4.0.0 application starting in development on http://0.0.0.0:3000
=> Run `rails server -h` for more startup options
=> Ctrl-C to shutdown server
[2014-01-16 16:59:59] INFO WEBrick 1.3.1
[2014-01-16 16:59:59] INFO ruby 2.0.0 (2013-11-22) [i686-linux]
[2014-01-16 16:59:59] INFO WEBrick::HTTPServer#start: pid=19531 port=3000
[/bash]
ブラウザーで、 http://localhost:3000 へアクセスします。
めでたくRailsのトップページが表示されていたら、Railsの開発環境が整ったことになります。

Ctrlキー + Cキー で、一旦Railsサーバーを停止します。
Eclipseでのデバッグ設定
さて、ここからがいよいよ本番です。
Eclipseのメニューより、ウィンドウ>>ビューの表示>>その他 をクリックします。

表示されたダイアログの中から、 Studio>>サーバー を選択します。

Eclipseの画面の下部に以下のようなサーバービューが表示されていると思います。
鉛筆マークをクリックし、設定を編集します。

ここがポイントです!!
デフォルトでは、Host/IPが 「0.0.0.0」となっているのですが、ここを「127.0.0.1」とします。

デバッグマークをクリックし、Railsサーバーを起動します。

エラーダイアログが表示され、以下のようなメッセージが表示されると思います。
Ruby program /home/xxx/workspace/testproj/script/rails does not exist.
詳しい原因は分かっていないのですが、Rails3とRails4でフォルダ構造が変わったために起きているエラーのような気がします。
[bash]
$ cd ~/workspace/testproj
$ cp bin/ script -R
[/bash]
ついでですので、Eclipseのデバッグ時に必要なGemをインストールしておきます。
[bash]
$ gem install ruby-debug-ide
[/bash]
サンプルアプリケーションの作成
[bash]
$ rails generate scaffold Sample name:string email:string
$ rake db:migrate
[/bash]
サンプルアプリケーションの動作確認
Eclipseのサーバービューから デバッグボタンをクリックし、Railsサーバーを起動します。
ブラウザーで localhost:3000/samples を表示
以下のように表示されればOK!

いよいよデバッグ出来るか確認
では、Eclipseに戻って、プロジェクトエクスプローラーより
app>>controllers>>samples_controller.rb を開きます。
[ruby]
def index
@samples = Sample.all
end
[/ruby]
上記の @samples = Sample.all
の行にブレークポイントを設定します。

先ほどのページをブラウザーで再度開きます。(もしくはリロードします。)
Eclipseのブレークポイントがハイライトされ、デバッグ待ち状態になれば、めでたくデバッグ環境構築成功です!
お疲れ様でした。
Leave a comment