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の設定
ゲストへのファイル転送のための設定
Build, Execution, Deployment
->Deployment
の設定画面を開く+
から add server のウィンドウを開く- Typeを
sftp
に設定.Nameは自分が識別できればいいので自由に入力
(自分は"#{プロジェクト名}-#{ホスト名}" にしています) - OKをクリック
- SFTP host, port にリモートマシンのホスト名orIPアドレス,ポート番号を入力
- User nameにゲスト側でのログイン名を入力
- パスワード or 秘密鍵を指定
- Root Path は
…
ボタンをクリックしてプロジェクトのファイルを配置するディレクトリを指定
(必要に応じて作成してください) Mappings
タブへ移動- Deployment path on server に
/
を指定する Apply
ボタンをクリックし適用
ゲスト上のRubyバイナリの指定
Languages & Frameworks
->Ruby SDK and Gems
の設定画面を開く+
ボタンをクリックし,New remote...
を選択SSH Credentials
を選択- Deploymentの設定と同じくゲスト側の情報を入力
- Ruby interpreter pathを指定
(rbenv, rvmなどを利用している場合少しややこしいみたいなので他のブログを検索して参考にしてください) - rubymineがゲストOS上の実行ファイルやインストールされてるgemについての情報を集めてくるので,しばらく待つ
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を閉じてから以下の作業を行ってください.
- 環境変数
RUBYMINE_JDK
を作成し,64bit jdk のpathを指定
(例:C:\Program Files\Java\jdk1.8.0_73
) %USERPROFILE%\.RubyMine80\rubymine.exe.vmoptions
のファイル名をrubymine64.exe.vmoptions
へリネームC:\Program Files (x86)\JetBrains\RubyMine 8.0.3\bin\rubymine.bat
からrubymineを起動
これで64bitで動作するようになったはずです.
コマンドプロンプトが邪魔
64bitで動くようになったのはいいけど常に表示されるコマンドプロンプトが結構邪魔です.
C:\Program Files (x86)\JetBrains\RubyMine 8.0.3\bin
に下のような内容のvbsファイルを作成- 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を利用する処理があります)
なので,リンク先を変更しましょう.
- スタートメニューのrubymineを右クリックしてファイルの場所を開く
- rubymineを選択して,プロパティを開く
- リンク先を
.exe
から.vbs
へ変更
このまま保存するとアイコンがvbsのものになって悲しい感じになるので….
アイコンの変更をクリックして参照から,rubymine.exeを選択して,rubymineのアイコンを設定しておきます.
メモリ上限引き上げ
デフォルトでは,RubyMineは512mbまでしかメモリを使わないよう上限が設定されています. こちらもRubyMine上から設定できません.
事前にrubymineを閉じてから以下の作業を行ってください.
- rubymineをインストールしたディレクトリ (
C:\Program Files (x86)\JetBrains\RubyMine 8.0.3
etc)のbin/rubymine.exe.vmoptions
を%USERPROFILE%\.RubyMine80\rubymine.exe.vmoptions
へコピー - 最初の
-Xms128m
,-Xmx512m
を変更する.
(例:-Xms:512m
,-Xmx:1024
)
ms
がrubymineが起動時に確保される最初のメモリ,mx
が最大のメモリサイズ