ちょっと前まで結構buggyな印象だったリモートインタプリタですが、最近のバージョンは安定してるっぽいです。
- ホスト
- IntelliJ IDEA 13.1
- Ruby plugin 6.5.0.20140314
- ゲスト
- Ubuntu 14.04 LTS
- ruby 2.1.2 (rbenv)
What's リモートインタプリタ?
IntelliJ IDEA で開発中のプロジェクトを、リモートホスト上のインタプリタで動作させる機能です。
リモートホストであるにも関わらず、実行やコンソール(rails c)、rakeタスク、rspecなどを SSH ごしに IDEA から操作でき、実行結果やログ等をシームレスに取得可能です。
Windows 上の IDEA で Rails 開発を行う場合はほぼ必須といっていい機能で、開発用サーバを Vagrant 等で管理する場合にも使える機能です。(vagrant用の設定プリセットもあって楽です)
よいとこ
- Windows 上で Rails 開発という苦行から解放してくれる
- 開発用サーバと本番用サーバの OS、ライブラリ等を揃えやすい
微妙なとこ
-
bundle install
実行後など、ローカルでのスタブの作成などに時間がかかる -
git checkout
など、リモートに全体を転送する必要があり規模によっては時間がかかる - リモートと言ってもやはりローカル上の仮想マシンでないと転送コストが馬鹿にならない
##手順
- リモートホスト上でrubyインストール
- Railsアプリケーション作成
- IDEA上でDeployment先登録
- IDEA上でリモートインタプリタ登録
- プロジェクト作成
- 転送設定
- Railsアプリケーションダウンロード
- bundle install
- 開発サーバ起動
さらに・・・デバッガの使用
###リモートホスト上でruby/railsインストール
なんでもよいですが今回はrbenvで。
uzuki05@dev $ rbenv install 2.1.2
uzuki05@dev $ rbenv global 2.1.2
uzuki05@dev $ gem install rails -v=4.1.1 --no-ri --no-rdoc
uzuki05@dev $ rbenv rehash
###アプリケーション作成
IDEA上で作成しようとすると、エラーが発生するので、リモートホスト側で作成しておきます。IDEAプロジェクト作成後、IDEAの同期機能でホスト側に取り込みます。
uzuki05@dev $ rails new hoge --skip-test-unit
###IDEA上でDeployment先登録
[Configure] > [Settings] > [Deployment]
でリモートホストの接続情報を登録。先に登録しておくことで次のリモートインタプリタ登録で接続情報入力を省略できます。
###IDEA上でリモートインタプリタ登録
[Configure] > [Project Defaults] > [Project Structure]
[Add New SDK] > [Ruby SDK] > [New Remote]
[Fill from deployment server settings]から先ほど登録した接続情報を自動設定できます。
[OK]を押すと、インストール済みのgemの情報を取得したりするので、インストールされているgemの数によってはしばらく待ちます。
登録できたら[OK]。
###プロジェクト作成
###転送設定
[Tool] > [Deployment] > [Configuration]
左ペインで登録したデプロイ先を選択し、[Mappings]タブを開きます。
- [Use this server as default]有効に
- [Deployment path on server
デプロイ先名
]は作成したRailsアプリのルートディレクトリ
続いて、
[Tool] > [Deployment] > [Options...]
- [Upload changed files automatically to the default server]を「On explicit save action」
###Railsアプリケーションダウンロード
左のProjectペインで、[プロジェクト名(ここでは「hoge」)を右クリック] > [Deployment] > [Download from デプロイ先名]
IDEAにより、リモートホスト上から生成されたRailsアプリが取り込まれます。
###bundle install
[Tools] > [Bundler] > [Install]
###開発サーバ起動
[Deployment: プロジェクト名]実行。
無事リモートホストでサーバが起動しました。
VirtualBoxはポートフォワーディングが楽ですね。
##Could not find a JavaScript runtime. See https://github.com/sstephenson/execjs for a list of available runtimes. (ExecJS::RuntimeUnavailable)
therubyracer
を入れればOK。
Gemfile
# 追記
gem 'therubyracer', '~> 0.12.1'
リモートホストに転送(「On explicit save action」の設定で保存時に自動転送されているはずです)後、
[Tools] > [Bundler] > [Install]
で無事インストール完了。
次回は、リモートインタプリタでデバッガを使ってみます。
→IntelliJ IDEA 13.1 + Ruby plugin 6.5.0.20140314 DE リモートデバッグ on Rails