1. 서론
처음 레일즈를 시작할 때 윈도우 위에 레일즈 개발 환경을 구축하다가 실패한 적이 있었습니다.
그때 그냥 속 편하게 회사맥북으로 개발하자고 다짐했었는데요, 지난 금요일에 맥북을 집으로 가져오는 걸 깜빡하는 바람에 자의반 타의반 재도전 했습니다.
2. windows와 rails
보통 Rails 개발은 윈도우 위에서 하면 안된다고들 얘기 합니다.
그런데 Ruby는 java 기반 언어라서 사실 이론적으로는 어떤 환경에서든 개발이 가능합니다. 그럼 왜 하지말라고 하는 걸까요? 가장 큰 이유는 gem 때문입니다. 윈도우에 아예 설치가 불가능한 gem들도 많고 Nokogiri 같은 gem은 윈도우의 파일 시스템을 지원하지 않습니다. 또 레일즈 커뮤니티 자체가 리눅스나 mac os 중심이기때문에 윈도우 위에서 개발할 때에는 정보를 얻기가 쉽지않다고 합니다.
3. WSL 설치
아무튼 그래서 저는 wsl을 이용해서 개발 환경을 구축하기로 했습니다.
WSL(리눅스용 윈도우 하위시스템)은 리눅스 환경을 주로 사용하는 개발자들을 위해 윈도우 10부터 윈도우에서 새로 지원하는 기능입니다. wsl을 이용하면 윈도우에 가상머신을 돌리지 않고도 리눅스환경을 사용할 수 있습니다.
1) PowerShell을 관리자 권한으로 열어 실행합니다.
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
2) 윈도우를 재시작 합니다.
3) microsoft store에서 원하는 리눅스 배포판을 다운로드 합니다.
4) 리눅스 배포판 (우분투) 앱을 실행시켜 줍니다.
4. 루비 설치
1) 루비 설치 전 필요한 dependency들을 설치해줍니다.
sudo apt-get update
sudo apt-get install git-core curl zlib1g-dev build-essential libssl-dev libreadline-dev libyaml-dev libsqlite3-dev sqlite3 libxml2-dev libxslt1-dev libcurl4-openssl-dev software-properties-common libffi-dev
2) 루비는 버전관리 툴인 rbenv나 rvm을 사용해 설치할 수도 있고 직접 설치 할 수도 있습니다. 저는 가장 무난한 방법인 rbenv를 사용했습니다. 먼저 rbenv를 설치해줍니다.
git clone https://github.com/rbenv/rbenv.git ~/.rbenv
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(rbenv init -)"' >> ~/.bashrc
exec $SHELL
3) 그리고 ruby-build를 설치합니다.
git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build
echo 'export PATH="$HOME/.rbenv/plugins/ruby-build/bin:$PATH"' >> ~/.bashrc
exec $SHELL
4) rbenv로 루비를 설치하고 사용할 루비 버전을 설정해줍니다. 저는 2.6.5를 설치했습니다.
rbenv install 2.6.5
rbenv global 2.6.5
ruby -v
# ruby 2.6.5p114 (2019-10-01 revision 67812) [x86_64-linux]
5) bundler를 설치해줍니다.
gem install bundler
rbenv rehash
5. 레일즈 설치
1) node js를 설치합니다.
* rails 개발을 하는데 node js를 설치하는 게 뜬금 없지만 해야합니다! rails가 Asset(CSS, Javascript, Image 등)파일들을 합치고 압축해주는 asset pipeline을 컴파일할 때 자바스크립트 런타임이 필요하기 때문입니다. 그리고 우분투 위에서 레일즈 개발을 할때에는 자바스크립트 런타임으로 node js를 쓰는게 가장 좋다고 합니다.
curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
sudo apt-get install -y nodejs
2) 이제 드디어 레일즈를 설치합니다.
gem install rails -v 6.0.2.1
rbenv rehash
rails -v
# Rails 6.0.2.1
6. Rubymine
저는 jetbrains의 에디터들이 손에 익어서 rails를 개발할 때도 rubymine을 사용합니다. rubymine에서 wsl 환경을 사용하려면 remote sdk를 직접 추가해줘야합니다.
1) 프로젝트를 생성하고 설정창에서 Ruby sdk and Gems 항목을 선택합니다.
2) 상단의 + 버튼을 누르고 new remote... 를 선택합니다.
3) wsl 터미널에서 rbenv의 경로를 찾습니다.
which rbenv
# /root/.rbenv/bin/rbenv
4) wsl을 선택하고 rbenv의 경로를 입력해줍니다.
5) 사용할 루비의 버전을 선택해줍니다.
6) 새로 추가된 sdk를 적용해줍니다.
rubymine 내의 터미널이 리눅스 터미널로 설정되어 잘 작동하는 것을 볼 수 있습니다.
7. 테스트
시험삼아 샘플 애플리케이션을 생성하고 로컬 서버를 실행해보겠습니다.
rails new sample_project
rails s
오류가 나네요,,,, 내가 어떻게 여기까지 왔는데,,,,
8. 오류 해결
또 포기 할수 없으니까 하라는대로 해줍니다. webpacker를 설치해줍니다.
rails webpacker:install
yarn도 없다네요,,, 쒸익,,,
없다니까 설치해 줍니다.
curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -
echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list
sudo apt update
sudo apt install yarn
sudo apt install --no-install-recommends yarn
yarn --version
# v1.21.1
그리고 나서 다시 webpacker를 설치해주었습니다.
rails webpacker:install
9. 다시 테스트
기도하는 마음으로 다시 로컬 서버를 띄워보았습니다.
rails s
얏호 반가운 화면이 떴습니다.
node js를 설치하면서 yarn을 함께 설치해주면 미연에 오류를 방지할 수 있었을 것 같네요.
포기하지 않으니 저에게도 윈도우 위에서 레일즈를 개발하는 날이 왔습니다... 아주 뿌듯하네요. 맥북 안사도 되겠어요 휴. 그럼 여러분도 화이팅!
출처:
https://gorails.com/setup/windows/10
https://www.jetbrains.com/help/ruby/configuring-remote-interpreters-using-wsl.html
https://linuxize.com/post/how-to-install-yarn-on-ubuntu-18-04/
https://www.quora.com/Is-it-a-bad-idea-to-use-Ruby-on-Rails-on-Windows
'Ruby on Rails' 카테고리의 다른 글
aws cloud 9으로 rails 개발하기 (0) | 2020.11.08 |
---|---|
Ruby Symbol에 대해서 (1) | 2020.10.11 |
rails CORS 이슈 처리하기 (0) | 2019.12.26 |
named scope안에서 last 메소드를 사용했을 때의 문제 해결 (0) | 2019.11.28 |
Ruby nil 처리하기 (0) | 2019.11.14 |
댓글