使用源码安装 NebulaGraphGraph
使用源码安装 NebulaGraph 允许自定义编译和安装设置,并测试最新特性。
前提条件Graph
-
准备正确的编译环境。参见Graph。
Note
暂不支持离线编译 NebulaGraph。
- 待安装 NebulaGraph 的主机可以访问互联网。
安装步骤Graph
Note
从2.6.1版本开始,Nebula-Graph、Nebula-Storage、Nebula-Common 的代码仓库合并为 Nebula 代码仓库,因此编译步骤与之前版本的步骤有所不同。
-
克隆 NebulaGraph 的源代码到主机。
-
[推荐] 如果需要安装2.6.1版本的 NebulaGraph,执行如下命令:
$ git clone --branch v2.6.1 https://github.com/vesoft-inc/nebula.git
-
如果需要安装最新的开发版本用于测试,执行如下命令克隆 master 分支的代码:
$ git clone https://github.com/vesoft-inc/nebula.git
-
-
进入目录
nebula
。$ cd nebula
-
创建目录
build
并进入该目录。$ mkdir build && cd build
-
使用 CMake 生成 makefile 文件。
Note
默认安装路径为
/usr/local/nebula
,如果需要修改路径,请在下方命令内增加参数-DCMAKE_INSTALL_PREFIX=<installation_path>
。更多 CMake 参数说明,请参见 Graph。
$ cmake -DCMAKE_INSTALL_PREFIX=/usr/local/nebula -DENABLE_TESTING=OFF -DCMAKE_BUILD_TYPE=Release ..
-
编译 NebulaGraph。
Note
检查Graph。
为了适当地加快编译速度,可以使用选项
-j
并行编译。并行数量N
建议为\(\min(\text{CPU}核数,\frac{内存 (GB)}{2})\)。$ make -j{N} # E.g., make -j2
-
安装 NebulaGraph。
$ sudo make install
-
安装目录下的
etc/
目录中(默认为/usr/local/nebula/etc
)的配置文件为参考模版,用户可以根据需要创建自己的配置文件。如果要使用script
目录下的脚本,启动、停止、重启、中止和查看服务,配置文件需要命名为nebula-graph.conf
,nebula-metad.conf
和nebula-storaged.conf
。Compatibility
在 2.0.1 中,可以直接使用
script
目录下的脚本,不需要将配置文件重新命名。
更新 master 版本Graph
master 分支的代码更新速度快,如果安装了 master 分支对应的开发版 NebulaGraph,可根据以下步骤更新版本。
-
在目录
nebula
中,执行命令git pull upstream master
更新源码。 -
在目录
nebula/build
中,重新执行make -j{N}
和make install
。
下一步Graph
- (企业版)Graph
- Graph
CMake 参数Graph
使用方法Graph
$ cmake -D<variable>=<value> ...
下文的 CMake 参数可以在配置 (CMake) 阶段用来调整编译设置。
CMAKE_INSTALL_PREFIXGraph
CMAKE_INSTALL_PREFIX
指定 NebulaGraph 服务模块、脚本和配置文件的安装路径,默认路径为/usr/local/nebula
。
ENABLE_WERRORGraph
ENABLE_WERROR
默认值为ON
,表示将所有警告(warning)变为错误(error)。如果有必要,用户可以设置为OFF
。
ENABLE_TESTINGGraph
ENABLE_TESTING
默认值为ON
,表示单元测试服务由 NebulaGraph 服务构建。如果只需要服务模块,可以设置为OFF
。
ENABLE_ASANGraph
ENABLE_ASAN
默认值为OFF
,表示关闭内存问题检测工具 ASan(AddressSanitizer)。该工具是为 NebulaGraph 开发者准备的,如果需要开启,可以设置为ON
。
CMAKE_BUILD_TYPEGraph
CMAKE_BUILD_TYPE
控制 NebulaGraph 的 build 方法,取值说明如下:
-
Debug
CMAKE_BUILD_TYPE
的默认值,build 过程中只记录 debug 信息,不使用优化选项。
-
Release
build 过程中使用优化选项,不记录 debug 信息。
-
RelWithDebInfo
build 过程中既使用优化选项,也记录 debug 信息。
-
MinSizeRel
build 过程中仅通过优化选项控制代码大小,不记录 debug 信息。
CMAKE_C_COMPILER/CMAKE_CXX_COMPILERGraph
通常情况下,CMake 会自动查找并使用主机上的 C/C++编译器,但是如果编译器没有安装在标准路径,或者想使用其他编译器,请执行如下命令指定目标编译器的安装路径:
$ cmake -DCMAKE_C_COMPILER=<path_to_gcc/bin/gcc> -DCMAKE_CXX_COMPILER=<path_to_gcc/bin/g++> ..
$ cmake -DCMAKE_C_COMPILER=<path_to_clang/bin/clang> -DCMAKE_CXX_COMPILER=<path_to_clang/bin/clang++> ..
ENABLE_CCACHEGraph
ENABLE_CCACHE
默认值为ON
,表示使用 Ccache(compiler cache)工具加速编译。
如果想要禁用 ccache,仅仅设置ENABLE_CCACHE=OFF
是不行的,因为在某些平台上,ccache 会代理当前编译器,因此还需要设置环境变量export CCACHE_DISABLE=true
,或者在文件~/.ccache/ccache.conf
中添加disable=true
。更多信息请参见 Graph。
NEBULA_THIRDPARTY_ROOTGraph
NEBULA_THIRDPARTY_ROOT
指定第三方软件的安装路径,默认路径为/opt/vesoft/third-party
。
问题排查Graph
如果出现编译失败,请参考以下建议:
-
检查操作系统版本是否符合要求、内存和硬盘空间是否足够。
-
检查 Graph 是否正确安装。
-
使用
make -j1
降低编译并发度。