使用源码安装Nebula Graph

使用源码安装Nebula Graph允许您自定义编译和安装设置,并测试最新特性。

前提条件

安装步骤

  1. 克隆Nebula Graph源码到主机。

    - 如果需要安装最新版本的开发代码,请执行如下命令下载master分支的源码:

    1. ```bash
    2. $ git clone https://github.com/vesoft-inc/nebula-graph.git
    1. \- 如果需要安装指定版本的Nebula Graph 2.x,请使用选项`--branch`指定分支。例如安装2.0.0 发布版本,请执行如下命令:
    1. $ git clone --branch v2.0.0 https://github.com/vesoft-inc/nebula-graph.git

    ```

  2. 进入目录nebula-graph

    1. $ cd nebula-graph
  3. 创建目录build并进入该目录。

    1. $ mkdir build && cd build
  4. 使用CMake生成makefile文件。

    说明

    • 默认安装路径为/user/local/nebula,如果需要修改路径,请在下方命令内增加参数-DCMAKE_INSTALL_PREFIX=<installation_path>
    • 更多CMake参数说明,请参见CMake参数

    - 如果您在第1步下载的是最新版本的开发代码,请执行如下命令:

    1. ```bash
    2. $ cmake -DENABLE_BUILD_STORAGE=on -DENABLE_TESTING=OFF -DCMAKE_BUILD_TYPE=Release ..
    1. \- 如果您在第1步下载的是指定版本的Nebula Graph 2.x,请使用选项`-DNEBULA_COMMON_REPO_TAG``-DNEBULA_STORAGE_REPO_TAG`指定相同的[nebula-common](https://github.com/vesoft-inc/nebula-common)和[nebula-storage](https://github.com/vesoft-inc/nebula-storage)分支。例如安装2.0.0 GA版本,请执行如下命令:
    1. $ cmake -DENABLE_BUILD_STORAGE=on -DENABLE_TESTING=OFF -DCMAKE_BUILD_TYPE=Release \
    2. -DNEBULA_COMMON_REPO_TAG=v2.0.0 -DNEBULA_STORAGE_REPO_TAG=v2.0.0 ..

    ```

  5. 编译Nebula Graph。

    为了适当地加快编译速度,可以使用选项-j并行编译。并行数量N建议为$min(CPU核数,\frac{内存(GB)}{2})$。

    1. $ make -j{N}

    6. 安装Nebula Graph。

    1. $ sudo make install-all
  6. (可选)更新master分支的源码,因为它经常更新。

    1. 在目录nebula-graph/中,执行命令git pull upstream master更新源码。

    2. 在目录nebula-graph/modules/common/nebula-graph/modules/storage/中,分别执行命令git pull upstream master

    3. 在目录nebula-graph/build/中,重新执行make -j{N}make install-all

下一步

CMake参数

使用方法

  1. $ cmake -D<variable>=<value> ...

下文的CMake参数可以在配置(CMake)阶段用来调整编译设置。

ENABLE_BUILD_STORAGE

从2.0.0版本开始,Nebula Graph的graph和storage代码仓库分离,可以各自单独编译。ENABLE_BUILD_STORAGE默认值为OFF,表示Storage服务不会和Graph服务一起安装。

如果您单机部署Nebula Graph进行测试,可以设置ENABLE_BUILD_STORAGE=ON,安装时会自动下载和安装Storage服务。

CMAKE_INSTALL_PREFIX

CMAKE_INSTALL_PREFIX指定Nebula Graph服务模块、脚本和配置文件的安装路径,默认路径为/usr/local/nebula

ENABLE_WERROR

ENABLE_WERROR默认值为ON,表示将所有警告(warning)变为错误(error)。如果有必要,您可以设置为OFF

ENABLE_TESTING

ENABLE_TESTING默认值为ON,表示单元测试服务由Nebula Graph服务构建。如果您只需要服务模块,可以设置为OFF

ENABLE_ASAN

ENABLE_ASAN默认值为OFF,表示关闭内存问题检测工具ASan(AddressSanitizer)。该工具是为Nebula Graph开发者准备的,如果需要开启,可以设置为ON

MAKE_BUILD_TYPE

MAKE_BUILD_TYPE控制Nebula Graph的build方法,取值说明如下:

  • Debug

    MAKE_BUILD_TYPE的默认值,build过程中只记录debug信息,不使用优化选项。

  • Release

    build过程中使用优化选项,不记录debug信息。

  • RelWithDebInfo

    build过程中既使用优化选项,也记录debug信息。

  • MinSizeRel

    build过程中仅通过优化选项控制代码大小,不记录debug信息。

CMAKE_C_COMPILER/CMAKE_CXX_COMPILER

通常情况下,CMake会自动查找并使用主机上的C/C++编译器,但是如果编译器没有安装在标准路径,或者您想使用其他编译器,请执行如下命令指定目标编译器的安装路径:

  1. $ cmake -DCMAKE_C_COMPILER=<path_to_gcc/bin/gcc> -DCMAKE_CXX_COMPILER=<path_to_gcc/bin/g++> ..
  2. $ cmake -DCMAKE_C_COMPILER=<path_to_clang/bin/clang> -DCMAKE_CXX_COMPILER=<path_to_clang/bin/clang++> ..

ENABLE_CCACHE

ENABLE_CCACHE默认值为ON,表示使用ccache(compiler cache)工具加速编译。

如果想要禁用ccache,仅仅设置ENABLE_CCACHE=OFF是不行的,因为在某些平台上,ccache会代理当前编译器,因此您还需要设置环境变量export CCACHE_DISABLE=true,或者在文件~/.ccache/ccache.conf中添加disable=true。更多信息请参见ccache official documentation

NEBULA_THIRDPARTY_ROOT

NEBULA_THIRDPARTY_ROOT指定第三方软件的安装路径,默认路径为/opt/vesoft/third-party