ソースコードから理解する技術-UnderSourceCode

手を動かす(プログラムを組む)ことで技術を理解するブログ

VirtualBoxでspringを動かしてみる

遅ればせながら、Railsのpreloaderとしてspringを使ってみました。
理由は、今まで使っていたsporkだと、コンソールが2つ必要になるのが
springでは一つになりそうだからです。
(sporkの起動に一つと、その他のコマンドの実行に一つ)

特にRSpecからデバッグする時、RSpecの起動と、デバッガがブレークポイントを示す
コンソールが異なるのが、不便でした。

以下、手順です。VirtualBoxでspringを実行する際には(他の仮想マシンでも同じか?)
下記に書くようなエラーが起きるので、単純にspringをインストールするだけでは
実行できないです。

1.springのインストール
以下のコマンドを実行する。(Gemfileに書いてbundle installは非推奨らしい)

$ gem install spring

2.springをロードし、rspecを起動してみる。

$ spring rspec spec/

3.以下のエラーが発生する。

`rescue in start_server': Spring is unable to create a socket・・・

良く見ると、エラーメッセージに以下のような解決策が書いてある。

You may need to set the SPRING_TMP_PATH environment variable to use a different path.

4.SPRING_TMP_PATHを設定するため、以下のコマンドを実行する。

$ mkdir ~/spring_tmp

$ export SPRING_TMP_PATH=spring_tmpのパス

5.手順2.を実行し、起動できることを確認する。

6.springが起動できることが確認できたら、~/.bashrcに以下を追記する。

export SPRING_TMP_PATH=spring_tmpのパス

以上です。spring上でのRSpecを起動と、pry debuggerの操作が
一つのコンソールで出来ることを確認しました。


※参考サイト
ruby on rails - Spring wil not start - Stack Overflow