Hello, RubyOnRails. (for Windows 8.1)
루비온레일즈 윈도우8에서 설치하기
파이썬을 이용하면 웹 어플리케이션의 생산성을 폭풍 향상 시킬 수 있다는 다수의 포스팅에 기운을 받아 파이썬과 장고를 이용하여 Hello, Django 를 실행해봤다. 그런데 웹 어플리케이션 생산성하면 당연 빼놓을 수 없는 것이 '레일즈'. 기왕 Hello 실행이라면 레일즈도 가능하리라 생각되어 Hello Rails 를 시도해봤다.
참고로 레일즈의 경우 생산성은 획기적이나 레일즈 프레임워크의 한계가 품질과 기능의 한계를 결정짓는 반면 파이썬의 경우는 웹 개발의 대표적인 프레임워크로 자리잡은 장고를 사용하더라도 프레임워크의 한계가 아닌 파이썬 프로그래머의 프로그래밍 능력이 한계를 결정짓는 경향이 크다고 한다. 그래서 레일즈의 경우는 기반 프로그래밍 언어인 루비보다 프레임워크인 레일즈가 더 강조되나보다. 실용성이 있는지는 모르겠지만 자바버전의 레일즈도 있으니까. 참고. Java on Railis (http://www.javaonrails.net)
이 글은 말 그대로 Hello, Rails. 이며 당연히 루비언어를 공부해 본 적이 없이 무작정 따라하기와 구글링 만으로 진행하는 것임을 밝힌다.
------------------------------------------------------------------------------
설치환경
운영체제 : Windows 8.1 Enterprise K
설치환경 : Ruby 1.9.3 + Gem 1.8.29 + Rails 4.2.0 + Sqlite3
레일즈 설치순서
1. 루비 설치
루비 인스톨러 (RubyInstaller for Windows) 에서 ruby 1.9.x 버전을 내려받아 설치한다. (2.x 버전 설치는 무의미하게 시간만 낭비하는 삽질의 길로 들어서는 길이니 절대 비추!!! 만일 성공기가 있다면 꼭 공유해 주시길;;; 여기서는 1.9.3 버전 설치)
설치시 PATH 지정 관련 옵션을 체크한다. (tcl/tk는 윈도우용 응용프로그램 개발시 필요한 것으로 알고 있음. 일단 제외하고 나머지 2개 옵션만 체크.)
2. DevKit (RubyInstaller Development Kit) 설치
루비가 설치된 폴더 아래에 'DevKit' 폴더를 만들고, 해당 폴더에 루비 인스톨러의 애드온인 DevKit (Ruby 버전에 따라 선택) 을 내려받아 설치한다.
예)
> cd \Ruby193 (※ Ruby 1.9.3 설치되 있음)
C:\Ruby193> mkdir DevKit
C:\Ruby193> cd DevKit
C:\Ruby193\DevKit>
3. 레일즈 설치
C:\Ruby193\DevKit> ruby dk.rb init
C:\Ruby193\DevKit> ruby dk.rb install
C:\Ruby193\DevKit> gem install rails
C:\Ruby193\DevKit> rails -v (레일즈 버전 확인 여기서는 4.2.0 설치)
4. 레일즈 어플리케이션 생성
C:\Ruby193\DevKit> mkdir \Rails
C:\Ruby193\DevKit> cd \Rails
C:\Rails> rails new blog (현재 폴더 아래에 blog 폴더 생성되고 필요한 파일들 자동 생성)
C:\Rails> cd blog
C:\Rails\blog> bundle install (레일즈 어플리케이션 실행에 의존적인 잼 자동 설치)
설치 중 오류 발생시 로그 확인하여 아래와 같이 RubyGems 로 해당 패키지를 설치후 bundle install 재실행.
> gem install 잼이름 -v '버전'
------------
ISSUE: debugger 1.6.8 인스톨 오류 발생
gem install debugger -v '1.6.8'
debugger 잼 설치시 다음과 같이 오류가 발생하여 더이상 진행이 불가능했다.
Makefile:nnn: *** target pattern contains no `%'. Stop.
몇 번의 반복후 구글링하여 시행착오 끝에 StackOverFlow 사이트에서 윈도우 환경의 Ruby 1.9.3과 이전 버전에서 RubyGems 2.4.1 빌드 문제가 있으므로 1.8.29 버전으로 다운그레이드하여 진행해야 한다는 내용을 찾았다.
http://stackoverflow.com/questions/24950844/issue-with-ruby-gem-install
>gem update --system 1.8.29
위의 명령을 실행하여 RubyGems 버전을 다운그레이드하니 debugger가 정상 설치가 되었다. 그리고 이후 번들러를 이용한 잼의 설치가 문제없이 진행이 되었다. (bundle install)
5. 데이터베이스 설정
레일즈 어플리케이션에 의존적인 잼이 모두 성공적으로 설치되었다면 Sqlite3이 설치되었을 것이다. Rails는 기본적으로 Sqlite3을 포함하고 있으며, 그외 다양한 DB들을 지원하고 있다.
C:\Rails\blog> rake db:create
6. 레일즈 어플리케이션 시작
간단하게 아래와 같이 명령을 실행한다.
C:\Rails\blog> rails server
웹서버가 자동 시작하며, 종료는 Ctrl+C.
웹브라우저로 레일즈 어플리케이션을 호출한 모습.
이상 루비와 레일즈를 설치하고 웹서버를 구동시켜 확인한 과정을 마친다. 설치 중간에 오류들이 없었다면 5분 내외로 확인이 가능할 듯 했으나, 윈도우 환경에서는 약간의 삽질은 피해갈 수 없는 듯하다. 운이 나쁘다면 스스로의 능력부족으로 위와같은 화면 확인은 물건너감 :-( 레일즈 사이트에서도 리눅스 환경을 권하고 있을 정도. 그리고 다시 한 번 강조하지만 루비 1.9 버전으로 진행할 것! 2.x 버전을 설치하는 순간 삽으로 태산을 건드렸다는 자괴감에 빠져 레일즈 공포증에 걸릴지도...
하지만 RubyGems의 버전과 의존성 문제만 로그를 보면서 해결한다면 가능할지도 모르겠다는 생각이...
참고!!!
RailsInstaller (http://railsinstaller.org) 에서 윈도우 환경에서 사용할 수 있는 루비+레일즈+SQLite 통합팩을 제공하고 있었다. 혹시나 하는 마음으로 Rails 2.1.5 + Rails 4.1 을 설치하여 사이트를 생성하였으나 rake 잼이 설치 안되는 오류에 봉착! 바로 언인스톨 후 Ruby 1.9.3 + Rails 3.2.21 로 다시 인스톨하여 사이트를 생성하니 bundler 를 이용한 설치가 진행됨. 역시 Ruby 2.x 는 상당한 구력이 필요할 듯.