在Ubuntu20.04编译mongodb内核源码笔记

0.下载指定分支

在mongo:github下克隆v4.2版本的分支

1. 相关依赖工具安装

1.1 编译器

能够编译C++17的现代C++编译器

  • GCC 8.2 or newer
  • Clang 7.0 or newer

输入如下命令即可查看编译器版本

$ gcc -v
$ clang -v

1.2 libcurl

在LInux环境下,需要libcurl库和头文件。Ubuntu/Debian 下, libcurl-dev 由以下3个包提供,安装任意一个即可

  • libcurl4-openssl-dev
  • libcurl4-nss-dev
  • libcurl4-gnutls-dev

我选择安装libcurl4-openssl-dev

$ sudo apt-get install libcurl4-openssl-dev

同时在Ubuntu下,还需要lzma库。因此需要安装liblzma-dev

$ sudo apt-get install liblzma-dev

1.3 python依赖

Python3.7 以上的版本是需要的。

为了环境的安全与方便,新建一个虚拟环境。首先下载python3-venv

$ sudo apt-get install python3-venv

mongo目录下创建并激活虚拟环境

$ python3 -m venv ./
$ source ./bin/activate

之后便可以安装依赖

python3 -m pip install -r etc/pip/compile-requirements.txt

为了编译基于C的模块,我们还需要Python和OpenSSL C Header

$ sudo apt-get install python3.8-dev libssl-dev

1.4 Ubuntu的依赖

$ sudo apt-get install build-essential           

2 使用SCons

根据所要编译的MongoDB版本文档的内容,使用Python脚本进行编译

python3 buildscripts/scons.py mongod --disable-warnings-as-errors

参考

  • MongoDB Building Guide
  • 如何阅读数百万级代码量mongodb内核源码
  • Python虚拟环境创建

你可能感兴趣的:(mongodb)