Aqutras Members' Blog

株式会社アキュトラスのメンバーが、技術情報などを楽しく書いています。

rubymine 導入記録

どうも,igutoです.
さて今日から暫くの間アキュトラス社内の人たちが連日のようにブログ投稿する企画?がスタートします.
どんな記事があがってくるのか楽しみにしていてください!

はじめに

普段はEmacsで開発してるのですが,前々からRuby向けIDEのRubyMineが気になっていました. 現在関わっているプロジェクトの環境がcjsxからes6+jsxと一般的な形への移行をきっかけに試用を始めました. RubyMineの紹介や便利なところは他のブログや記事でたくさん取り上げられているのでそちらに譲り, ここでは設定した内容やハマったところを取り上げたいと思います.

前提

ホスト: Windows10
仮想化ソフトウェア: hyper-v
ゲスト: UbuntuServer 14.04
RubyMine: 8.0.3
ゲスト上のRuby: 2.2(rbenv,rvm不使用)

後述するようにRubyMineから仮想マシンなどリモートマシン上でRailsを動作させる構成の場合,リモートマシンのRubyを設定で指定する必要があります. Vagrantを利用している場合は,RubyMineがVagrantfileから接続に必要な情報を判断してくれるので,そちらの設定をおすすめします. また,Virtualboxの共有フォルダを介してゲスト-ホスト間でファイルのやり取りを行う方法もあります.

この記事の設定では,リモートマシンのRubyの指定,ゲスト-ホスト間のファイルのやり取りをsftpで行う形を紹介します.

RubyMineの設定

ゲストへのファイル転送のための設定

  1. Build, Execution, Deployment -> Deployment の設定画面を開く
  2. +から add server のウィンドウを開く
  3. Typeをsftpに設定.Nameは自分が識別できればいいので自由に入力
    (自分は"#{プロジェクト名}-#{ホスト名}" にしています)
  4. OKをクリック
  5. SFTP host, port にリモートマシンのホスト名orIPアドレス,ポート番号を入力
  6. User nameにゲスト側でのログイン名を入力
  7. パスワード or 秘密鍵を指定
  8. Root Path は ボタンをクリックしてプロジェクトのファイルを配置するディレクトリを指定
    (必要に応じて作成してください) f:id:hi_igu:20160309000640p:plain
  9. Mappingsタブへ移動
  10. Deployment path on server に / を指定する f:id:hi_igu:20160309001233p:plain
  11. Applyボタンをクリックし適用

ゲスト上のRubyバイナリの指定

  1. Languages & Frameworks -> Ruby SDK and Gems の設定画面を開く
  2. +ボタンをクリックし,New remote... を選択
  3. SSH Credentialsを選択
  4. Deploymentの設定と同じくゲスト側の情報を入力 f:id:hi_igu:20160309000459p:plain
  5. Ruby interpreter pathを指定
    (rbenv, rvmなどを利用している場合少しややこしいみたいなので他のブログを検索して参考にしてください)
  6. rubymineがゲストOS上の実行ファイルやインストールされてるgemについての情報を集めてくるので,しばらく待つ
  7. OKをクリックして保存

ファイルの事前転送

IDEの右側にあるRemote Hostウィンドウを開き,先ほど設定したゲストを選択し,右クリックからUpload hereを実行する.
(転送に結構時間がかかるのでrsyncが使えるならそちらの方がおすすめです)

rails サーバの起動

左上にあるからRailsサーバを起動します.Railsアイコンに赤く×が付いている場合はRubyMineが実行可能なRailsやRubyを見つけられていない状態です. RubyやDeploymentの設定のどこかがおかしい可能性があります.

それでも×が消えない場合は,以下のことを試してみてください.

bundlerを利用している場合

  • メニューのRun -> Edit Configurations -> Rails -> Development: ....を開く
  • Bundlerタブを開く
  • Run the script in context of the bundleにチェックが入っていることを確認

globalにrailsをインストール

  • globalにbundlerで指定しているバージョンのrailsをインストールする(sudo gem install rails -v X.X.X)

rubymineの設定ファイルディレクトリを削除

  • 一旦RubyMineを終了
  • %USERPROFILE%\RubyMineProjects/<project name>/.ideaを削除
  • 再度RubyMineを起動する

64bit化

デフォルトでは32bitで動作します.RubyMineの設定からは変更出来ませんが,設定ファイルをいじるとこで変更できます.

確認

まず,本当に32bitで動いてるのか確認しておきます.

  • rubymineのメニューバー -> Help -> About を表示して,JRE:の末尾に x86が表示されていれば32bit

変更

事前にrubymineを閉じてから以下の作業を行ってください.

  1. 環境変数 RUBYMINE_JDK を作成し,64bit jdk のpathを指定
    (例: C:\Program Files\Java\jdk1.8.0_73)
  2. %USERPROFILE%\.RubyMine80\rubymine.exe.vmoptionsのファイル名をrubymine64.exe.vmoptionsへリネーム
  3. C:\Program Files (x86)\JetBrains\RubyMine 8.0.3\bin\rubymine.batからrubymineを起動


これで64bitで動作するようになったはずです.

コマンドプロンプトが邪魔

64bitで動くようになったのはいいけど常に表示されるコマンドプロンプトが結構邪魔です.

  1. C:\Program Files (x86)\JetBrains\RubyMine 8.0.3\binに下のような内容のvbsファイルを作成
  2. vbsからrubymineを起動
Set ws = CreateObject("Wscript.Shell")
ws.run "cmd /c " + """C:\Program Files (x86)\JetBrains\RubyMine 8.0.3\bin\rubymine.bat""", vbhide

スタートメニューの検索からrubymineを起動したい / 起動すると32bitになる

スタートメニューにあるrubymineへのリンクは.exeへのリンクになっているため,RUBYMINE_JDK を読んでくれません.
(rubymine.batにRUBYMINE_JDKを利用する処理があります)
なので,リンク先を変更しましょう.

  1. スタートメニューのrubymineを右クリックしてファイルの場所を開く
  2. rubymineを選択して,プロパティを開く
  3. リンク先を.exeから.vbsへ変更


このまま保存するとアイコンがvbsのものになって悲しい感じになるので…. アイコンの変更をクリックして参照から,rubymine.exeを選択して,rubymineのアイコンを設定しておきます.

メモリ上限引き上げ

デフォルトでは,RubyMineは512mbまでしかメモリを使わないよう上限が設定されています. こちらもRubyMine上から設定できません.

事前にrubymineを閉じてから以下の作業を行ってください.

  1. rubymineをインストールしたディレクトリ ( C:\Program Files (x86)\JetBrains\RubyMine 8.0.3 etc)のbin/rubymine.exe.vmoptions
    %USERPROFILE%\.RubyMine80\rubymine.exe.vmoptionsへコピー
  2. 最初の-Xms128m,-Xmx512mを変更する.
    (例: -Xms:512m, -Xmx:1024)
    msがrubymineが起動時に確保される最初のメモリ,mxが最大のメモリサイズ