使用源码编译

编译器要求

Nebula Graph 基于 C++ 14 开发,因此它需要一个支持 C++ 14 的编译器。

支持系统版本

  • Fedora 29, 30
  • CentOS 6.5, CentOS 7.0 ~ 7.6
  • Ubuntu 16.04, 18.04

需要的硬盘和内存空间

当编译类型为 Debug 的时候,最好预留 50G 的 SSD 硬盘空间。

并提供至少 8GB 的内存。

本地构建

步骤 1: 克隆代码

  1. bash> git clone https://github.com/vesoft-inc/nebula.git

步骤 2 : 安装依赖

  • 环境能直接下载云存储 OSS 包的用户
  1. bash> cd nebula && ./build_dep.sh
  • 环境不能直接下载云存储 OSS 包的用户
  1. 从本地源下载依赖和进行配置
  1. bash> cd nebula && ./build_dep.sh N
  1. 从下面链接中下载对应版本的压缩包
  1. 安装下载好的压缩包
  1. tar xf ${package_name}.tar.gz
  2. cd ${package_name} && ./install.sh

步骤 3: 应用 ~/.bashrc 修改

  1. bash> source ~/.bashrc

步骤 4A: 构建 Debug 版本

  1. bash> mkdir build && cd build
  2. bash> cmake ..
  3. bash> make
  4. bash> sudo make install

或构建 Release 版本。

步骤 4B: 构建 Release 版本,重新生成 Makefile

  1. bash> cmake -DCMAKE_BUILD_TYPE=Release ..
  2. bash> make
  3. bash> sudo make install

构建完成

  • 如果没有任何错误信息

    1. [100%] Built target ....

    编译成功!

  • 在安装目录 /usr/local/nebula 下有如下四个子目录 etc/, bin/, scripts/ share/

    1. [root@centos 7.5 nebula]# ls /usr/local/nebula/
    2. bin etc scripts share

    现在可以开始运行 Nebula Graph

启动 Nebula Graph 服务

经过上述的安装后,便可以启动 Nebula Graph 的服务,Nebula Graph 默认的安装目录为 /usr/local/nebula

  1. bash> cd /usr/local/nebula

重命名 Nebula Graph 服务的配置文件

  1. bash> cp etc/nebula-graphd.conf.default etc/nebula-graphd.conf
  2. bash> cp etc/nebula-metad.conf.default etc/nebula-metad.conf
  3. bash> cp etc/nebula-storaged.conf.default etc/nebula-storaged.conf

启动服务

  1. bash> ./scripts/nebula.service start all
  2. bash> ./bin/nebula -u user -p password --port 3699 --addr "127.0.0.1"
  3. nebula> SHOW HOSTS;

常见问题和解决方案

  • 错误信息: /usr/bin/ld: cannot find Scrt1.o: No such file or directory

    解决方案:

    步骤 1: 在 ~/.bashrc 末添加如下行

    1. export LIBRARY_PATH=/usr/lib/x86_64-linux-gnu:$LIBRARY_PATH

    步骤 2: 应用 ~/.bashrc 修改

    1. bash> source ~/.bashrc
  • 错误信息: [ERROR] No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK?

    解决方案: 1) 运行 java -version 来获取 jdk 版本信息 2) 如果你的 jdk 版本不是 1.8.0_xxx,请安装

    Ubuntu

    1. bash> sudo apt-get -y install openjdk-8-jdk

    CentOS

    1. bash> sudo yum -y install java-1.8.0-openjdk

    切换 JAVA 版本

    1. bash> sudo update-alternatives --config java

    并选择 java-1.8.0-openjdk/java-8-openjdk

  • 错误信息: internal error

    解决方案:

    你需要自己编译第三方库,第三方库的安装路径为 /opt/nebula/third-party

    步骤 1: 下载第三方库的源码包

    1. bash> wget https://nebula-graph.oss-accelerate.aliyuncs.com/third-party/nebula-3rdparty.tar.gz

    步骤 2: 解压并编译third-party

    1. bash> tar xf nebula-3rdparty.tar.gz && cd nebula-3rdparty
    2. bash> ./install_deps.sh
    3. bash> cmake ./
    4. bash> sudo make

    步骤 3: 配置项目的环境变量和其他依赖

    1. bash> cd nebula && ./build_dep.sh N
    2. bash> source ~/.bashrc
    3. bash> mkdir build && cd build
    4. bash> cmake ..
    5. bash> make