首页 > *nix应用编程, *nix技术 > MongoDB的源码编译安装

MongoDB的源码编译安装

2018年1月28日 发表评论 阅读评论 143 次浏览

1,下载源码
从github上下载MongoDB的源码:https://github.com/mongodb/mongo/releases
我这里下载了:https://github.com/mongodb/mongo/archive/r3.6.2.tar.gz
另外,我的OS为CentOS-7.2.x64

2,准备编译环境
解压MongoDB源码包后,在docs/building.md文档里能看到编译当前版本MongoDB所需的编译环境:

* A modern C++ compiler. One of the following is required.
    * GCC 5.4.0 or newer
    * Clang 3.8 (or Apple XCode 8.3.2 Clang) or newer
    * Visual Studio 2015 Update 3 or newer (See Windows section below for details)
* Python 2.7.x and Pip modules:
  * pyyaml
  * typing

i,升级gcc
从gcc的官网下载源码,然后进行解压和编译安装。
# tar -xjf gcc-5.5.0.tar.bz2
# cd gcc-5.5.0
# ./contrib/download_prerequisites
# cd .. && mkdir gcc-build-5.5.0 && cd gcc-build-5.5.0
# ../gcc-5.5.0/configure –prefix=/usr/local/bin/gcc-5.5.0 –enable-checking=release –enable-languages=c,c++ –disable-multilib
# make -j4
# make install
# update-alternatives –install /usr/bin/gcc gcc /usr/local/bin/gcc-5.5.0 66

备注:
遇到错误:

configure: error: error verifying int64_t uses long long
make[2]: *** [configure-stage1-gcc] Error 1
make[2]: Leaving directory `/root/gcc-build-5.5.0'
make[1]: *** [stage1-bubble] Error 2
make[1]: Leaving directory `/root/gcc-build-5.5.0'
make: *** [all] Error 2

解决:

[root@localhost gcc-build-5.5.0]# yum install gcc-c++

ii,升级python
从python的官网下载源码,然后进行解压和编译安装。
# tar xf Python-2.7.14.tar.xz
# cd Python-2.7.14/
# yum install -y bzip2-devel
# ./configure –prefix=/usr/local/python-2.7.14
# make & make install
# update-alternatives –install /usr/bin/python python /usr/local/bin/python-2.7.14 69

iii,安装scons
官网上找到源码包直接安装。
# yum install pcre-devel python-devel
# tar -zxvf scons-3.0.1.tar.gz && cd scons-3.0.1
# python setup.py install

iv,安装Python模块
# pip install –upgrade pip
# pip2 install -r buildscripts/requirements.txt

3,编译MongoDB
我这编译遇到这个错误:
[root@localhost mongo-r3.6.2]# python2 buildscripts/scons.py all -j 4
scons: Reading SConscript files …
Invalid MONGO_VERSION ”, or could not derive from version.json or git metadata. Please add a conforming MONGO_VERSION=x.y.z[-extra] as an argument to SCons

需要手动指定版本号:
# python2 buildscripts/scons.py all MONGO_VERSION=3.6.2 -j 4

all为全部编译,这包括mongod, mongo, tests, 等等,需要较长时间,也需要比较多的磁盘空间,我这里只编译core(包括:mongod, mongos, mongo)就行了。
# python2 buildscripts/scons.py core MONGO_VERSION=3.6.2 -j 4

4,安装
# python2 buildscripts/scons.py –prefix=/opt/mongo install MONGO_VERSION=3.6.2
# cd /opt/mongo/bin/
# ls
install_compass mongo mongod mongoperf mongos

5,运行
# cd /opt/mongo/
# mkdir -p /opt/data/mongo
# bin/mongod
bin/mongod: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.21′ not found (required by bin/mongod)
bin/mongod: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.20′ not found (required by bin/mongod)
bin/mongod: /lib64/libstdc++.so.6: version `CXXABI_1.3.8′ not found (required by bin/mongod)
# export LD_LIBRARY_PATH=/usr/local/bin/gcc-5.5.0/lib64
# bin/mongod –dbpath /opt/data/mongo

6,验证
新开一个终端,进行连接:
# export LD_LIBRARY_PATH=/usr/local/bin/gcc-5.5.0/lib64
# bin/mongo

Over~

参考:
http://www.runoob.com/mongodb/mongodb-tutorial.html

转载请保留地址:http://www.lenky.info/archives/2018/01/2620http://lenky.info/?p=2620


备注:如无特殊说明,文章内容均出自Lenky个人的真实理解而并非存心妄自揣测来故意愚人耳目。由于个人水平有限,虽力求内容正确无误,但仍然难免出错,请勿见怪,如果可以则请留言告之,并欢迎来讨论。另外值得说明的是,Lenky的部分文章以及部分内容参考借鉴了网络上各位网友的热心分享,特别是一些带有完全参考的文章,其后附带的链接内容也许更直接、更丰富,而我只是做了一下归纳&转述,在此也一并表示感谢。关于本站的所有技术文章,欢迎转载,但请遵从CC创作共享协议,而一些私人性质较强的心情随笔,建议不要转载。

法律:根据最新颁布的《信息网络传播权保护条例》,如果您认为本文章的任何内容侵犯了您的权利,请以Email或书面等方式告知,本站将及时删除相关内容或链接。

  1. 本文目前尚无任何评论.
  1. 本文目前尚无任何 trackbacks 和 pingbacks.