Tech Racho エンジニアの「?」を「!」に。
  • 開発

全ての手作業を生まれる前に消し去りたい! - RubyMineのRemoteSDK開発環境構築 失敗編

初めまして、2月にBPSへ入社しましたkmaedaです。
記念すべき初のTechracho投稿となりますが、宜しくお願いします。

Ruby on Rails開発で使うIDE、RubyMineのRemoteSDK機能の設定について書きます。
この機能を利用することによって環境構築済みのサーバさえあれば、すぐに開発を始められます。

環境はこんな感じです。

remote_rubymine

公式では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
WS007

緑色の+(プラス)ボタンを押して、「New Remote...」を選択します。
接続に必要である情報を入れてOKを押下します。
WS018

そして待ちます。結構待ちます。

終わると、リモート先のGemがクライアント側とSyncされていれば成功です。
WS013

設定が終わったところで、早速動かしてみよう。

ログを確認すると・・・

/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より、ローカルのプロジェクトディレクトリとリモート先のディレクトリを定義します。
WS017

定義が終わったら、設定を保存してもう一度実行!
WS016

ログを確認すると・・・

/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を入れてます。
まだ時代(開発)が追い付いていない機能の模様。
結局は設定の失敗に終わりましたが、引き続きウォッチしていくので続報をご期待ください。


CONTACT

TechRachoでは、パートナーシップをご検討いただける方からの
ご連絡をお待ちしております。ぜひお気軽にご意見・ご相談ください。