CentOS 5.5上编译安装MongoDB

发布时间:2020-11-21编辑:脚本学堂
生产系统上使用的mongodb是官方编译好的二进制程序,这段时间总是有些莫名的问题,于是决定自己编译安装mongodb。

生产系统上使用的mongodb是官方编译好的二进制程序,这段时间总是有些莫名的问题,于是决定自己编译安装mongodb。

1、下载最新的mongo源码包,pcre,epel,js
 

复制代码 代码如下:

2、安装epel,scons,js,pcre
   

复制代码 代码如下:

#安装epel,然后再安装scons和boost

    rpm -ivh epel-release-5-4.noarch.rpm
    yum -y install scons boost boost-devel

    #安装js

    tar zxvf js-1.7.0.tar.gz
    cd js/src/
    export CFLAGS="-DJS_C_STRINGS_ARE_UTF8"
    make -f Makefile.ref
    JS_DIST=/usr gmake -f Makefile.ref export

 #安装pcre

 tar vxf pcre-8.12.tar.bz2
 cd pcre-8.12
 ./configure --prefix=/usr/local/pcre --enable-utf8 --enable-unicode-properties
 make && make install
#在安装mongo的时候,提示找不到pcrecpp的头文件的话,就将安装的pcre的头文件拷贝到/usr/include下面
 cp /usr/local/pcre/include/* /usr/include/

3、准备安装mongodb
  

复制代码 代码如下:

  tar xvf mongodb-src-r1.8.1.tar.gz
    cd mongodb-src-r1.8.1

#修改mongodb-src-r1.8.1目录下的SConstruct文件,要不然编译的时候找不到pcre,会报错。

elif "linux2" == os.sys.platform:  #修改这个段,大概在420行左右
    linux = True
    platform = "linux"

    if os.uname()[4] == "x86_64" and not force32:
        linux64 = True
        nixLibPrefix = "lib64"
        env.Append( LIBPATH=["/usr/lib64" , "/lib64","/usr/local/pcre/lib" ] ) #这里把安装的pcre的lib指定
        env.Append( LIBS=["pthread"] )
        env.Append( LIBS=["libpcrecpp"] )  #这里给出pcrecpp的库名

4、安装mongo
 

复制代码 代码如下:
    scons . #也可以用 scons all
    scons --prefix=/usr/local/mongodb-1.8.1 --full install

5、修改系统动态链接库配置
 

复制代码 代码如下:
    echo '/usr/local/pcre/lib' >> /etc/ld.so.conf
    ldconfig

6、到这里mongo就安装好了,可以生成一个启动脚本,以方便启动mongodb
   

复制代码 代码如下:

mkdir /data/mongodb

    cat > /usr/local/mongodb-1.8.1/start.sh <<EOF
    /usr/local/mongodb-1.8.1/bin/mongod --dbpath=/data/mongodb --logpath /data/mongodb_log --oplogSize=512 &
    EOF

    chmod +x /usr/local/mongodb-1.8.1/start.sh

7、可以通过start.sh文件启动mongodb了。