지난 번에 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 를 잡아 가면서 디버깅 할 수 있다.