初めまして、2月にBPSへ入社しましたkmaedaです。
記念すべき初のTechracho投稿となりますが、宜しくお願いします。
Ruby on Rails開発で使うIDE、RubyMineのRemoteSDK機能の設定について書きます。
この機能を利用することによって環境構築済みのサーバさえあれば、すぐに開発を始められます。
環境はこんな感じです。
公式ではVagrantに対応した設定はあるみたいですが、今回は使用せず、
構築済みのLinuxサーバをリモート先として実行します。
リモート先OS : ubuntu 12.04LTS
host(IP): rails.dev(192.168.174.100)
Ruby : 2.1.0 (rbenv使用)
Rails : 4.0.2
js : Node.js
プロジェクトディレクトリ : /var/samba/rails_tutorial01
クライアントOS : Windows7
IDE : RubyMine 6.0.3
プロジェクトディレクトリ : Z:/rails_tutorial01
参考サイト
https://www.jetbrains.com/ruby/webhelp/configuring-remote-interpreters-via-ssh.html
RubyMineを起動して、メニューから設定に進んでいきます。
File > settings > Ruby SDK And Gems
緑色の+(プラス)ボタンを押して、「New Remote...」を選択します。
接続に必要である情報を入れてOKを押下します。
そして待ちます。結構待ちます。
終わると、リモート先のGemがクライアント側とSyncされていれば成功です。
設定が終わったところで、早速動かしてみよう。
ログを確認すると・・・
/home/kmaeda/.rbenv/versions/2.1.0/bin/ruby -C'Z:/rails_tutorial01' -e '$stdout.sync=true;$stderr.sync=true;load($0=ARGV.shift)' Z:/rails_tutorial01/bin/rails server -b 0.0.0.0 -p 3000 -e development /home/kmaeda/.rbenv/versions/2.1.0/bin/ruby: Can't chdir to Z:/rails_tutorial01 (fatal)
なにやら、リモート先で存在しないパスに移動しようとしてるので定義してみる。
(クライアント側のプロジェクトディレクトリは Z:/rails_tutorial01
)
Run/debug Configurationから、実行時の設定を編集します。
PathMappingsより、ローカルのプロジェクトディレクトリとリモート先のディレクトリを定義します。
ログを確認すると・・・
/home/kmaeda/.rbenv/versions/2.1.0/bin/ruby -C'/var/samba/rails_tutorial01' -e '$stdout.sync=true;$stderr.sync=true;load($0=ARGV.shift)' /var/samba/rails_tutorial01/bin/rails server -b 0.0.0.0 -p 3000 -e development /var/samba/rails_tutorial01/Z:/rails_tutorial01/Gemfile not found
有りもしない場所にGemfileを探しに・・・・?
もう堪忍袋の緒が切れました。
とりあえず、動作させたいのでディレクトリ作ってプロジェクトファイルをコピーしてみよう。
$mkdir -p /var/samba/rails_tutorial01/Z:/rails_tutorial01/; $cp -av /var/samba/rails_tutorial01/* /var/samba/rails_tutorial01/Z:/rails_tutorial01/
もう一度実行してログを確認してみると・・・?
/home/kmaeda/.rbenv/versions/2.1.0/bin/ruby -C'/var/samba/rails_tutorial01' -e '$stdout.sync=true;$stderr.sync=true;load($0=ARGV.shift)' /var/samba/rails_tutorial01/bin/rails server -b 0.0.0.0 -p 3000 -e development /home/kmaeda/.rbenv/versions/2.1.0/lib/ruby/gems/2.1.0/gems/execjs-2.0.2/lib/execjs/runtimes.rb:51:in `autodetect': Could not find a JavaScript runtime. See https://github.com/sstephenson/execjs for a list of available runtimes. (ExecJS::RuntimeUnavailable)
jsのランタイム環境が無い!と、errorが出てますがサーバー側にnode.jsを入れてます。
まだ時代(開発)が追い付いていない機能の模様。
結局は設定の失敗に終わりましたが、引き続きウォッチしていくので続報をご期待ください。