카테고리 없음
mongodb를 사용하는데 두 가지 방법이 있다. binary버전 source버전

binary버전은 어떠한 설명서도 필요없이 쉽게 다운만 받아서 설치할 수 있지만 source 버전의 경우 빌드하기 위해 설치하고 준비해야할 것들이 매우 많다. 특히 centos의 경우 5.4버전이라도 구형 stable한 버전의 library를 주로 사용하기 때문에 업그레이드를 해주어야 할 것들도 매우 많다.

요구사항
boost
spider monkey - js
mongodb 소스 (c++로 mongodb가 만들어져서 c++드라이버는 자체 내장되어있다. 빌드할때 퉁쳐서 빌드가 된다.)
mongodb c driver 소스
pcre 업그레이드 (6.6.2 with unicode support)
scons 2.0.1
python 2.7


1. boost 설치
boost의 경우 요즘은 아주 쉽게 설치 할 수 있기 때문에 홈페이지에서 소스를 가져다가 설치하면 금새 할 수 있다. 간단히 설명하겠다.

소스 설치의 경우 boost도 조금 복잡하기에 그냥 yum 으로 설치하도록 하자

만약 다른 곳에서 boost를 사용하고 있고 버전이 낮아서 높은 버전을 원한다면 www.boost.org에서 source최신 버전을 다운받아 설명서를 보면서 설치하시면 된다.. (boost는 자료가 많기 때문에 설명을 패스함)

# yum install boost-devel

2. spider monkey
mongodb에서 server-side javascript execution을 위해 spider monkey가 필요하다. 이 것은 js라이브러리를 설치하면 해결할 수 있다.

Download
# curl - O ftp://ftp.mozilla.org/pub/mozilla.org/js/js-1.7.0.tar.gz
# tar xvfz js-1.7.0.tar.gz

Build
# cd js/src
# export CFLAGS="-DJS_C_STRINGS_ARE_UTF8"
export로 CFLAGS를 잡아주지 않으면 mongodb를 빌드하는데는 문제가 없지만 차후 mongodb를 사용할 때 한글 지원이 제대로 되지 않을 우려가 있다. (한글을 사용하고자 하면 에러를 발생시킨다.), 기본적으로 spider monkey는 utf8을 지원하지 않도록 되어 있기 때문에 위의 변수를 선언해주어야 하는 것이다.
# make -f Makefile.ref

Install
# JS_DIST=/usr make -f Makefile.ref export
JS_DIST로 설치될 경로를 설정해준다.

3. Python 2.7 설치
python은 scons를 사용하기 위해 설치를 해준다.
scons를 사용하면 mongodb를 빌드하고 설치하기 매우~!!! 편하다.

Download
#wget http://www.python.org/ftp/python/2.7.1/Python-2.7.1.tgz
# tar xvfz Python-2.7.1.tgz
# cd Python-2.7.1
# ./configure
# make & make install

4. scons 설치
python을 설치했으니 scons는 다운받아서 설치만 하면 된다.

# wget http://downloads.sourceforge.net/project/scons/scons/2.0.1/scons-2.0.1.tar.gz
# tar xvfz scons-2.0.1.tar.gz
# cd scons-2.0.1
# python setup.py install

5. mongodb and c++ driver 설치
mongodb는 http://www.mongodb.org/downloads 사이트에서 전 품목을 절찬리 다운 받을 수 있다.
우리는 소스가 필요하니 제일 오른쪽에 source 필드에서 1.6.5 버전을 다운받자 (최신 버전을 받아도 되나, 옛날에 hadoop의 최신버전으로 고생을 많이 해본 경험으로 그 뒤로는 항상 stable 버전으로 다운받아서 설치하였다.)

Download
mongodb
# wget http://downloads.mongodb.org/src/mongodb-src-r1.6.5.tar.gz
c driver
https://github.com/mongodb/mongo-c-driver
위의 url로 가서 다운받아서 서버로 넘기자 - 해당 url을 wget으로 받는 경로를 몰라 그냥 받아서 서버로 전송시켰다.

Build Mongodb
# tar xvfz mongodb-src-r1.6.5.tar.gz
# cd mongodb-src-r1.6.5
# scons all
빌드가 모두 완료 된 뒤 mongodb를 그냥 사용할 것이라면 아래와 같이 설치
# scons --prefix=/usr/mongo install
빌드가 모두 완료 된 뒤 mongodb를 활용하여 뭔가를 만들 것이라면 아래와 같이 설치 (prefix는 안해줘도 된다 기본 경로는 /usr/local, 난 그냥 /usr에 설치했다. /usr/local로 그냥 설치해서 차후 library 경로를 /usr/local/lib, /usr/local/include 로 잡아주어도 된다.)
# scons --prefix=/usr/mongo --full install

Build C Driver
# tar xvfz mongodb-mongo-c-driver-v0.1-63.tar.gz
# cd mongodb-mongo-c-driver-f853306
기본적인 빌드
# scons 
gcc를 c99 모드로 빌드
# scons --c99
빌드를 하고 나서 test를 진행
# scons test
빌드를 하고 나서 테스트를 하는데 서버의 경로를 지정 (다른 리모트 서버에 mongodb가 설치되어있다면)
# scons test --test-server=111.111.111.111
하지만 위의 test의 경우 test source가 모두 하드코딩으로 127.0.0.1 (localhost)로 잡혀있어서 물론 안해봤지만 안될 듯하다. 그래서 그냥 scons --c99로 빌드



모두 설치가 완료
그러면 해당 경로로 가보면 모두 설치가 된 것을 확인할 수 있다.

# mongod &
# mongo
했을 경우 제대로 접속된다면 OK

문의 사항이 있다면 tomcabout@google.com으로 메일이나 구글톡을 신청해서 물어보셔도 됩니다.