0
0
mirror of https://github.com/mongodb/mongo.git synced 2024-11-30 09:06:21 +01:00
mongodb/docs/building.md

140 lines
4.1 KiB
Markdown
Raw Normal View History

2009-11-19 16:49:34 +01:00
Building MongoDB
================
To build MongoDB, you will need:
* A modern C++ compiler capable of compiling C++17. One of the following is required:
* GCC 8.0 or newer
* Clang 7.0 (or Apple XCode 10.0 Clang) or newer
* Visual Studio 2017 version 15.9 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 - `libcurl-dev` is provided by three packages. Install one of them:
* `libcurl4-openssl-dev`
* `libcurl4-nss-dev`
* `libcurl4-gnutls-dev`
2019-02-19 16:50:57 +01:00
* Python 3.7.x and Pip modules:
* See the section "Python Prerequisites" below.
* About 13 GB of free disk space for the core binaries (`mongod`, `mongos`, and `mongo`) and about 600 GB for the all target.
2017-05-16 17:12:05 +02:00
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).
2017-05-16 17:12:05 +02:00
Python Prerequisites
---------------
2019-02-19 16:50:57 +01:00
In order to build MongoDB, Python 3.7.x is required, and several Python modules. To install
2017-05-16 17:12:05 +02:00
the required Python modules, run:
2019-02-19 16:50:57 +01:00
$ pip3 install -r etc/pip/compile-requirements.txt
2017-05-16 17:12:05 +02:00
2019-02-19 16:50:57 +01:00
Note: If the `pip3` command is not available, `pip` without a suffix may be the pip command
associated with Python 3.7.x.
2017-05-16 17:12:05 +02:00
Note: In order to compile C-based Python modules, you'll also need the Python and OpenSSL C headers. Run:
* Fedora/RHEL - `dnf install python3-devel openssl-devel`
* Ubuntu/Debian - `apt-get install python3.7-dev libssl-dev`
SCons
2010-07-13 23:45:22 +02:00
---------------
2017-05-16 17:12:05 +02:00
For detail information about building, please see [the build manual](https://github.com/mongodb/mongo/wiki/Build-Mongodb-From-Source)
2009-11-19 16:49:34 +01:00
If you want to build everything (mongod, mongo, tests, etc):
2009-11-19 16:49:34 +01:00
2019-02-19 16:50:57 +01:00
$ python3 buildscripts/scons.py all
2009-11-19 16:49:34 +01:00
2010-07-13 23:45:22 +02:00
If you only want to build the database:
2009-11-19 16:49:34 +01:00
2019-02-19 16:50:57 +01:00
$ python3 buildscripts/scons.py mongod
***Note***: For C++ compilers that are newer than the supported version, the compiler may issue new warnings that cause MongoDB to fail to build since the build system treats compiler warnings as errors. To ignore the warnings, pass the switch `--disable-warnings-as-errors` to scons.
2019-02-19 16:50:57 +01:00
$ python3 buildscripts/scons.py mongod --disable-warnings-as-errors
2010-07-13 23:45:22 +02:00
To install
2009-11-19 16:49:34 +01:00
2019-02-19 16:50:57 +01:00
$ python3 buildscripts/scons.py --prefix=/opt/mongo install
2009-11-19 16:49:34 +01:00
2010-07-14 17:27:02 +02:00
Please note that prebuilt binaries are available on [mongodb.org](http://www.mongodb.org/downloads) and may be the easiest way to get started.
2009-11-19 16:49:34 +01:00
SCons Targets
2010-07-13 23:45:22 +02:00
--------------
The following targets can be named on the scons command line to build only certain components:
* mongod
* mongos
* mongo
* core (includes mongod, mongos, mongo)
* all
2009-11-19 16:49:34 +01:00
Windows
2010-07-13 23:45:22 +02:00
--------------
2009-11-19 16:49:34 +01:00
2017-05-16 17:12:05 +02:00
See [the windows build manual](https://github.com/mongodb/mongo/wiki/Build-Mongodb-From-Source#windows-specific-instructions)
2009-11-19 16:49:34 +01:00
Build requirements:
* Visual Studio 2017 version 15.9 or newer
2019-02-19 16:50:57 +01:00
* Python 3.7
2017-05-16 17:12:05 +02:00
Or download a prebuilt binary for Windows at www.mongodb.org.
2009-11-19 16:49:34 +01:00
Debian/Ubuntu
2010-07-13 23:45:22 +02:00
--------------
To install dependencies on Debian or Ubuntu systems:
# apt-get install build-essential
# apt-get install libboost-filesystem-dev libboost-program-options-dev libboost-system-dev libboost-thread-dev
To run tests as well, you will need PyMongo:
# apt-get install python3-pymongo
2010-05-02 01:52:44 +02:00
OS X
2010-07-13 23:45:22 +02:00
--------------
Using [Homebrew](http://brew.sh):
$ brew install mongodb
2010-05-02 01:52:44 +02:00
Using [MacPorts](http://www.macports.org):
2014-02-05 18:04:52 +01:00
$ sudo port install mongodb
2010-05-02 01:52:44 +02:00
FreeBSD
2010-07-13 23:45:22 +02:00
--------------
Install the following ports:
* devel/libexecinfo
* lang/llvm70
* lang/python
Optional Components if you want to use system libraries instead of the libraries included with MongoDB
* archivers/snappy
* devel/boost
2010-07-13 23:45:22 +02:00
* devel/pcre
2009-11-19 16:49:34 +01:00
Add `CC=clang70 CXX=clang++70` to the `scons` options, when building.
OpenBSD
--------------
Install the following ports:
* devel/libexecinfo
* lang/gcc
* lang/python