티스토리 뷰

Ruby 컴파일 및 설치

최신 rails를 설치하려면 ruby 1.8.3 버전보다 높아야 한다. 그러므로 git 저장소에서 현재 개발 버전인 trunk 브랜치를 받아야 하는데, 필자의 경우는 ruby_2_0_0 버전을 fetching 하였다.

필자는 이런 저런 실험을 하는 것을 좋아해서 소스 코드를 직접 컴파일해서 사용하는 방법을 선호한다. 대부분 컴파일 순서나 방식은 대체로 비슷하다. [1]

컴파일 환경은 MacOS.

$ git clone https://github.com/ruby/ruby.git

$ git checkout origin/ruby_2_0_0

컴파일하기 위해 autoconf 외 몇 가지가 설치되어 있어야 한다.

$ sudo port install autoconf gdbm openssl

autoconf를 실행해보자.

$ autoconf

autoconf를 실행하면 ./configure.* 파일 들이 생성된 것을 확인할 수 있다.

$ ls config*
-rwxr-xr-x  1 powerumc  staff  592258  9 17 13:26 configure
-rw-r--r--  1 powerumc  staff  121488  9 16 13:48 configure.in
-rw-r--r--  1 powerumc  staff    1085  9 16 13:48 constant.h
-rw-r--r--  1 powerumc  staff   41119  9 16 13:48 cont.c

./configure를 실행하여 컴파일 환경을 구성한다.

$ ./configure
Downloading config.guess...
Downloading config.sub...
-- 이하 생략 --

make 명령으로 ruby 소스 코드를 컴파일 한다.

$ make
CC = clang
LD = ld
LDSHARED = clang -dynamic -bundle
-- 이하 생략 --
Generating RI format into /Volumes/Data/workspace/github/github/ruby/.ext/rdoc...

Files:        905

Classes:     1411 (   0 undocumented)
Modules:      312 (   4 undocumented)
Constants:   2282 ( 724 undocumented)
Attributes:  1137 ( 340 undocumented)
Methods:    10862 (2554 undocumented)

Total:      16004 (3622 undocumented)
 77.37% documented

Elapsed: 170.9s

컴파일이 성공하면 ruby를 로컬에 설치한다. 만약 port 등으로 ruby를 설치했다면 port로 ruby를 제거하고, /etc/* 모든 하위 폴더에 ruby 관련 파일을 제거한다. 자세한 사항은 인터넷 검색을 ^^

$ sudo make install
-- 이하 생략 --
installing binary commands:   /usr/local/bin
installing base libraries:    /usr/local/lib
installing arch files:        /usr/local/lib/ruby/2.0.0/x86_64-darwin12.5.0
installing pkgconfig data:    /usr/local/lib/pkgconfig
installing extension objects: /usr/local/lib/ruby/2.0.0/x86_64-darwin12.5.0
installing extension objects: /usr/local/lib/ruby/site_ruby/2.0.0/x86_64-darwin12.5.0
installing extension objects: /usr/local/lib/ruby/vendor_ruby/2.0.0/x86_64-darwin12.5.0
installing extension headers: /usr/local/include/ruby-2.0.0/x86_64-darwin12.5.0
installing extension scripts: /usr/local/lib/ruby/2.0.0
installing extension scripts: /usr/local/lib/ruby/site_ruby/2.0.0
installing extension scripts: /usr/local/lib/ruby/vendor_ruby/2.0.0
installing extension headers: /usr/local/include/ruby-2.0.0/ruby
installing rdoc:              /usr/local/share/ri/2.0.0/system
installing capi-docs:         /usr/local/share/doc/ruby
installing command scripts:   /usr/local/bin
installing library scripts:   /usr/local/lib/ruby/2.0.0
installing common headers:    /usr/local/include/ruby-2.0.0
installing manpages:          /usr/local/share/man/man1
installing default gems:      /usr/local/lib/ruby/gems/2.0.0 (build_info, cache, doc, gems, specifications)
                               bigdecimal 1.2.0
                               io-console 0.4.2
                               json 1.7.7
                               minitest 4.3.2
                               psych 2.0.0
                               rake 0.9.6
                               rdoc 4.0.0
                               test-unit 2.0.0.0


댓글