프로그래밍/Ruby

Ruby 개발환경 설정하기 (윈도우7에서)

Terry Cho 2014. 8. 18. 23:23

Windows 7에서 Ruby 개발환경 설정하기




MongoDB in Action 몽고디비 인 액션

저자
카일 뱅커 지음
출판사
제이펍 | 2012-04-20 출간
카테고리
컴퓨터/IT
책소개
MongoDB나 NoSQL에 경험 없는 개발자를 위한 쉽고 실전...
가격비교


이책을 공부하다보니, 예제가 ruby라서, 예상치 않게 Ruby를 살펴보고 있는데, 윈도우즈7에서 Ruby 개발 환경 설정하는 것이 쉽지 않아서 설정 방법을 요약하고자한다.


1. Ruby Install 하기

http://rubyinstaller.org/downloads/ 에서 Ruby Install 바이너리를 받아서 설치한다. 2.2.0-p481(x64)

여기까지는 보통 문제 없이 잘된다.


향후에 모듈을 설치하려면 보통 컴파일 에러가 나오면서 잘 안되는 경우가 많다.

%gem install bson_ext


2. SSL 에러 해결하기

회사등에서 설치할 경우, https를 통해서 gem repository에 접근하는데, 회사 방화벽이나 Proxy에서 SSL 인증서를 변경한다면, 인증서 오류로 인해서 SSL오류가 나면서 설치가 되지 않는 경우가 있다. 이런 문제를 해결하기 위한 대안으로는 gen repository 사이트에 대한 연결을 https에서 http로 변경하면 된다.

% gem sources -r https://rubygems.org/

% gem sources -a http://rubygems.org/


3.컴파일 환경 설정하기

다시 인스톨을 시도 해보면, 또 에러가 날 수 있는데, 컴파일 환경이 설정되어 있지 않는 경우이다. (아래와 같은 에러)



 이 모듈은 native 모듈 (C/C++로 짜여진 모듈)을 포함하고 있기 때문에 십중팔구 인스톨이 안된다. 네이티브 모듈은 컴파일이 필요한데, 이 C/C++을 컴파일 할 수 있는 컴파일러가 없기 때문이다.

Ruby에서는 gcc를 컴파일러로 사용하는데, 윈도우즈에서 이러한 컴파일 환경을 설정하려면 Ruby DevKit을 인스톨 해주면 된다.



http://rubyinstaller.org/downloads/ 에서 설치한 Ruby 버전에 맞는 Development Kit을 받아서 실행한다.

실행하면 압축이 풀리는데, 해당 디렉토리로 가서

%ruby dk.rb init 
을 실행한후

%ruby dk.rb install -f 

를 실행한다.

이때 install 과정에서 config.yaml 파일이 잘못되었다고 에러가 나올 수 있다.(안나오면 다음 스탭으로 진행)

config.yaml 파일을 열어보면 여기에 Ruby 를 설치한 Home directory가 init 단계에서 지정되어 있어야 하는데, 제대로 지정이 안되는 경우가 있다. config.yaml 파일을 열어서 Ruby 설치 디렉토리를 아래와 같이 지정한다. 

※ 아래는 ruby가  C:/dev/lang/Ruby200-x64 에 설치되어 있을 경우이다.


# This configuration file contains the absolute path locations of all

# installed Rubies to be enhanced to work with the DevKit. This config

# file is generated by the 'ruby dk.rb init' step and may be modified

# before running the 'ruby dk.rb install' step. To include any installed

# Rubies that were not automagically discovered, simply add a line below

# the triple hyphens with the absolute path to the Ruby root directory.

#

# Example:

#

# ---

# - C:/ruby19trunk

  - C:/dev/lang/Ruby200-x64


4. msys-1.0 라이브러리 패치

여기까지 하고 다시 모듈 인스톨을 다시 시도 해보자. 그래도 안되고 아래와 같은 에러가 나는 경우가 있다.

m.AllocationBase 0x0, m.BaseAddress 0x60E90000, m.RegionSize 0x170000, m.State 0x10000

Ruby는 윈도우에서 모듈 컴파일을 할대, 앞서 설치한 DEVELOPMENT KIT을 통해서 컴파일을 하는데, 이 KIT는 cygwin을 기반으로 되어 있다. 위의 에러는 cygwin 모듈중에서 나는 에러로

http://support.code-red-tech.com/CodeRedWiki/VirtualAllocPointerNull  에서 msys-1.0.dll을 다운로드 받아서 Development Kit을 설치한 디렉토리의 /bin 디렉토리에서 msys-1.0.dll을 앞에서 다운로드 받은 dll로 overwrite시켜주면 된다.


여기 까지 진행하고 다시 모듈을 인스톨해보면 대부분의 경우 설치가 될것이다.



'프로그래밍 > Ruby' 카테고리의 다른 글

루비 기본 문법 정리  (1) 2014.08.18