使用源码安装Nebula Graph

    安装步骤

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

      • [推荐]如果需要安装v2.5.1版本的Nebula Graph,执行如下命令:

      • 如果需要安装最新的开发版本用于测试,执行如下命令克隆master分支的代码:

    2. 进入目录nebula-graph

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

    4. 使用CMake生成makefile文件。

      Note

      默认安装路径为/usr/local/nebula,如果需要修改路径,请在下方命令内增加参数 -DCMAKE_INSTALL_PREFIX=<installation_path>

      更多CMake参数说明,请参见CMake参数

      • 如果在第1步下载了v2.5.1版本的源码,执行如下命令。选项-DNEBULA_COMMON_REPO_TAG-DNEBULA_STORAGE_REPO_TAG用于指定和nebula-storage库的分支,以使各Nebula Graph组件的版本保持一致。

        1. $ cmake -DENABLE_BUILD_STORAGE=on -DENABLE_TESTING=OFF -DCMAKE_BUILD_TYPE=Release \
        2. -DNEBULA_COMMON_REPO_TAG=v2.5.1 -DNEBULA_STORAGE_REPO_TAG=v2.5.1 ..
      • 如果在第1步下载了master分支的代码,执行如下命令即可。

        1. $ cmake -DENABLE_BUILD_STORAGE=on -DENABLE_TESTING=OFF -DENABLE_MODULE_UPDATE=ON -DCMAKE_BUILD_TYPE=Release ..
    5. 安装Nebula Graph。

      1. $ sudo make install-all
    6. 安装目录下的 etc/ 目录中(默认为/usr/local/nebula/etc)的配置文件为参考模版,用户可以根据需要创建自己的配置文件。如果要使用 script 目录下的脚本,启动、停止、重启、中止和查看服务,配置文件需要命名为 nebula-graph.confnebula-metad.confnebula-storaged.conf

      Compatibility

      在 2.0.1 中,可以直接使用 目录下的脚本,不需要将配置文件重新命名。

    master分支的代码更新速度快,如果安装了master分支对应的开发版Nebula Graph,可根据以下步骤更新版本。

    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

    下一步

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

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

    ENABLE_BUILD_STORAGE

    从2.5.1版本开始,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默认值为ON,表示将所有警告(warning)变为错误(error)。如果有必要,用户可以设置为OFF

    ENABLE_TESTING

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

    ENABLE_ASAN

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

    • Debug

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

    • Release

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

    • RelWithDebInfo

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

    • MinSizeRel

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

    CMAKE_C_COMPILER/CMAKE_CXX_COMPILER

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

    ENABLE_CCACHE

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

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

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

    问题排查

    如果出现编译失败,请参考以下建议:

    1. 检查操作系统版本是否符合要求、内存和硬盘空间是否足够。

    2. 检查是否正确安装。

    3. 使用make -j1降低编译并发度。

    4. 更新代码:git pull,并再次编译,第4步加上CMake选项。