지난 번에 WSL 환경 세팅법에 대해 포스팅했다. (http://yiunsr.tistory.com/763


서버쪽 개발을 하는  사람들의 경우, 실 서버는 리눅스를 이용하기 마련인데, 개발 환경의 경우 원도우인 경우가 많다. 그렇다보면 언어에 따라서는 OS 의 차이 때문에 원도우에서는 개발환경을 구축하는게 제한되는 경우가 많다. 


 개인적으로 파이썬 개발환경을 윈도우에서 개발하지만 이 때문에 gunicorn 이런 것은 사용하지 못한다. 그래도 파이썬의 경우 이러한 제약이 적다고 생각하는데 루비의 경우 환경세팅에 어려움을 많이 겪고 있다. 루비를 시작한지 이제 이주일 되어 가는데, 이 환경을 벗어나기 위해 생각한 것이 WSL 환경이다.


 루비 설정은 기존 리눅스에서 설치하듯이 설치하면 된다. 크게 어려움이 없다. 


루비 버전 관리를 위해 보통 rbenv 를 이용하므로 이를 설치한다.


cd ~

//// rbenv 설치

git clone git://github.com/sstephenson/rbenv.git .rbenv 

echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(rbenv init -)"' >> ~/.bashrc
exec $SHELL




 디버깅 환경은 vscode 를 사용해서 구축할 수 있다. vscode 를 윈도우즈로 돌리고 WSL 을 이용해서 bash 에서 돌아가는 루비 프로그램을 remote 환경으로 디버깅 할 수 있다. 루비 디버깅을 위해서는 

아래 2개의 gem 이 꼭 설치가 필요하다. 

gem install ruby-debug-ide

gem install debase

 

Ruby on Rail 의 예를 들면

WSL Bash 환경에서 


rdebug-ide --host 0.0.0.0 --port 1234 --dispatcher-port 26162 -- bin/rails server

이런 식으로 rails 서버를 디버깅 환경으로 돌린다. 이 상태에서는 완전히 실행되지 않고 디버깅을 기다리고 있다.


vscode 에서는 ruby 확장 프로그램을 설치하고

“Listen for rdebug-ide” 를 이용한다.


remoteWorkspaceRoot 의 경로는 bash 를 기준으로 하는 파일 경로를 사용한다.

"/mnt/d/workspace/vscode/project"  이런 식으로 bash에서 윈도우즈로 접속하는 파일 경로이다.

(이 경로는 실제 윈도우즈 환경에서는 D:\workspac\vscode\project 이런 경로이다. )

 {

            "name": "Listen for rdebug-ide",

            "type": "Ruby",

            "request": "attach",

            "cwd": "${workspaceRoot}",

            "remoteHost": "127.0.0.1",

            "remotePort": "1234",

            "remoteWorkspaceRoot": "/mnt/d/workspace/vscode/todoror"

        }, 



vscode 에서 디버깅을 시작하면 rails 서버가 정상적으로 시작한다. 이 상태에서 break point 를 잡아 가면서 디버깅 할 수 있다.