centos5系下編譯Mongodb2.0.0:
Mongodb2.0.0編譯所依賴的包有pcre,Boost,Spider Monkey 和scons
1,yum 安裝pcre,boost,scons,不贅述
2,編譯spider monkey
- wget -c ftp://ftp.mozilla.org/pub/mozilla.org/js/js-1.7.0.tar.gz
- tar xvf js-1.7.0.tar.gz
- cd js/src
- export CFLAGS="-DJS_C_STRINGS_ARE_UTF8" #重要,打開UTF-8支持
- make -f Makefile.ref
- JS_DIST=/usr/local/js make -f Makefile.ref export #安裝到/usr/local/js
tips:mongodb2.0.0官方文檔提示目前僅測試過js1.7.0版本,最新的1.8.0沒有經過測試,所以爲了避免問題,我們選擇1.7.0版
3,編譯readline
- wget -c ftp://ftp.cwru.edu/pub/bash/readline-6.2.tar.gz
- tar xvf readline-6.2.tar.gz
- cd readline-6.1
- ./configure --prefix=/usr/local/readline
- make
- make install
4,安裝python2.5以上版本
這個很關鍵,如果沒有使用2.5以上版本,編譯的時候,會連第一步都過不去。原因就是因爲版本不同,所造成的語法錯誤。
- yum install python26
tips:這裏選擇安裝python2.6版本
到這裏還沒有結束,scons是python編寫的一個項目管理工具,你還要修改scons使用的python版本,centos5默認是2.4的。
- vim /usr/bin/scons
第一行腳本聲明後面加個"2.6"即可
5,編譯boost1.47.0
在這個問題上我吃了一個大虧,之前因爲直接yum安裝了boost(版本是1.33.1),mongodb安裝好後一直無法啓動,會自動kill自己,後來查各方資料,得知可能是boost版本的問題,於是就嘗試再重新編譯boost最新版,結果自然是成功了。
- wget -c http://downloads.sourceforge.net/project/boost/boost/1.47.0/boost_1_47_0.tar.gz
- tar xvf boost_1_47_0.tar.gz
- cd boost_1_47_0
- sh bootstrap.sh
- ./bjam --prefix=/usr/local/boost_1_47_0 threading=multi link=static variant=release install
6,開始編譯mongodb
- wget -c http://downloads.mongodb.org/src/mongodb-src-r2.0.0.tar.gz
- tar xvf mongodb-src-r2.0.0.tar.gz
- cd mongodb-src-r2.0.0
- scons --prefix=/usr/local/mongodb --extrapath=/usr/local/js,/usr/local/readline,/usr/local/boost_1_47_0 install
照此,安裝結束,可以開始感受no-sql的魅力了!