1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
|
Building MongoDB
================
To build MongoDB, you will need:
* 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)
* On Linux and macOS, the libcurl library and header is required. MacOS includes libcurl.
* Fedora/RHEL - dnf install libcurl-devel
* Ubuntu/Debian - apt-get install libcurl-dev
* Python 2.7.x and Pip modules:
* pyyaml
* typing
MongoDB supports the following architectures: arm64, ppc64le, s390x, and x86-64.
More detailed platform instructions can be found below.
MongoDB Tools
--------------
The MongoDB command line tools (mongodump, mongorestore, mongoimport, mongoexport, etc)
have been rewritten in [Go](http://golang.org/) and are no longer included in this repository.
The source for the tools is now available at [mongodb/mongo-tools](https://github.com/mongodb/mongo-tools).
Python Prerequisites
---------------
In order to build MongoDB, Python 2.7.x is required, along with several Python modules. To
install the required Python modules, run:
$ python2.7 -m pip install -r buildscripts/requirements.txt
Note: If the `python2.7` command is not available, `python2` may be the command
associated with Python 2.7.x. To verify that, run:
$ python2 --version
If `pip` is not installed for Python 2.7.x, you will need to install it first. For
details, see:
* https://pip.pypa.io/en/stable/installing/
SCons
---------------
For detail information about building, please see [the build manual](https://github.com/mongodb/mongo/wiki/Build-Mongodb-From-Source)
If you want to build everything (mongod, mongo, tests, etc):
$ python2 buildscripts/scons.py all
If you only want to build the database:
$ python2 buildscripts/scons.py mongod
To install
$ python2 buildscripts/scons.py --prefix=/opt/mongo install
Please note that prebuilt binaries are available on [mongodb.org](http://www.mongodb.org/downloads) and may be the easiest way to get started.
SCons Targets
--------------
* mongod
* mongos
* mongo
* core (includes mongod, mongos, mongo)
* all
Windows
--------------
See [the windows build manual](https://github.com/mongodb/mongo/wiki/Build-Mongodb-From-Source#windows-specific-instructions)
Build requirements:
* Visual Studio 2015 Update 2 or newer
* Python 2.7, ActiveState ActivePython 2.7.x Community Edition for Windows is recommended
If using VS 2015 Update 3, two hotfixes are required to build. For details, see:
* https://support.microsoft.com/en-us/help/3207317/visual-c-optimizer-fixes-for-visual-studio-2015-update-3
* https://support.microsoft.com/en-za/help/4020481/fix-link-exe-crashes-with-a-fatal-lnk1000-error-when-you-use-wholearch
Or download a prebuilt binary for Windows at www.mongodb.org.
Debian/Ubuntu
--------------
To install dependencies on Debian or Ubuntu systems:
# aptitude install build-essential
# aptitude install libboost-filesystem-dev libboost-program-options-dev libboost-system-dev libboost-thread-dev
To run tests as well, you will need PyMongo:
# aptitude install python-pymongo
OS X
--------------
Using [Homebrew](http://brew.sh):
$ brew install mongodb
Using [MacPorts](http://www.macports.org):
$ sudo port install mongodb
FreeBSD
--------------
Install the following ports:
* devel/libexecinfo
* lang/clang38
* lang/python
Optional Components if you want to use system libraries instead of the libraries included with MongoDB
* archivers/snappy
* lang/v8
* devel/boost
* devel/pcre
Add `CC=clang38 CXX=clang++38` to the `scons` options, when building.
OpenBSD
--------------
Install the following ports:
* devel/libexecinfo
* lang/gcc
* lang/python
Special Build Notes
--------------
* [open solaris on ec2](building.opensolaris.ec2.md)
|