Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[WIP] Update 3.0.0 core compilation #1371

Merged
merged 85 commits into from
Jan 13, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
85 commits
Select commit Hold shift + click to select a range
a48ce94
Updated studio docs
randomJoe211 May 14, 2021
01e4284
Create st-ug-limitations.md
randomJoe211 May 14, 2021
bfdb9ff
Delete st-ug-limitations.md
randomJoe211 May 14, 2021
f855b27
Revert "Delete st-ug-limitations.md"
randomJoe211 May 14, 2021
03a8d26
Delete docs-2.0/nebula-docs directory
randomJoe211 May 17, 2021
04bee24
keep consistency
randomJoe211 May 17, 2021
5954458
Updated studio docs
randomJoe211 May 14, 2021
e9d8153
Create st-ug-limitations.md
randomJoe211 May 14, 2021
d4530ba
Delete st-ug-limitations.md
randomJoe211 May 14, 2021
48ab6b6
Revert "Delete st-ug-limitations.md"
randomJoe211 May 14, 2021
66941d4
Delete docs-2.0/nebula-docs directory
randomJoe211 May 17, 2021
9286aa4
keep consistency
randomJoe211 May 17, 2021
6fb5ecc
Updated studio docs
randomJoe211 May 14, 2021
cbee085
Create st-ug-limitations.md
randomJoe211 May 14, 2021
5a4a026
Delete st-ug-limitations.md
randomJoe211 May 14, 2021
c147be1
Revert "Delete st-ug-limitations.md"
randomJoe211 May 14, 2021
83cbeb9
Delete docs-2.0/nebula-docs directory
randomJoe211 May 17, 2021
df91984
keep consistency
randomJoe211 May 17, 2021
a3db441
Merge branch 'vesoft-inc:master' into master
randomJoe211 May 31, 2021
c72bd3c
Merge branch 'vesoft-inc:master' into master
randomJoe211 Jun 2, 2021
7859fb6
Merge branch 'vesoft-inc:master' into master
randomJoe211 Jun 2, 2021
649ae82
Merge branch 'vesoft-inc:master' into master
randomJoe211 Jun 3, 2021
be2e882
Merge branch 'vesoft-inc:master' into master
randomJoe211 Jun 4, 2021
55906d3
Merge branch 'vesoft-inc:master' into master
randomJoe211 Jun 9, 2021
32982c7
Merge branch 'vesoft-inc:master' into master
randomJoe211 Jun 15, 2021
d58a30d
Merge branch 'vesoft-inc:master' into master
randomJoe211 Jun 21, 2021
a1d22f8
Merge branch 'vesoft-inc:master' into master
randomJoe211 Jun 23, 2021
31b686a
Merge branch 'vesoft-inc:master' into master
randomJoe211 Jun 23, 2021
b813a7c
Merge branch 'vesoft-inc:master' into master
randomJoe211 Jun 24, 2021
b6dc134
Merge branch 'vesoft-inc:master' into master
randomJoe211 Jun 24, 2021
64cabe3
Merge branch 'vesoft-inc:master' into master
randomJoe211 Jun 25, 2021
a9e8293
Merge branch 'vesoft-inc:master' into master
randomJoe211 Jul 2, 2021
7fbc278
Merge branch 'vesoft-inc:master' into master
randomJoe211 Jul 9, 2021
32187a7
Merge branch 'vesoft-inc:master' into master
randomJoe211 Jul 16, 2021
7db0590
Merge branch 'vesoft-inc:master' into master
randomJoe211 Jul 16, 2021
64ea344
Merge branch 'vesoft-inc:master' into master
randomJoe211 Jul 21, 2021
1a44200
Merge branch 'vesoft-inc:master' into master
randomJoe211 Jul 21, 2021
ee01f88
Merge branch 'vesoft-inc:master' into master
randomJoe211 Jul 23, 2021
f122f44
Merge branch 'vesoft-inc:master' into master
randomJoe211 Jul 26, 2021
b6d38cc
Merge branch 'vesoft-inc:master' into master
randomJoe211 Jul 27, 2021
6a99d39
Merge branch 'vesoft-inc:master' into master
randomJoe211 Aug 3, 2021
29757d2
Update mkdocs.yml
randomJoe211 Aug 3, 2021
34f5073
Update mkdocs.yml
randomJoe211 Aug 4, 2021
d0c0bd7
Merge pull request #1 from vesoft-inc/master
randomJoe211 Aug 4, 2021
c442c6f
Merge branch 'vesoft-inc:master' into master
randomJoe211 Aug 11, 2021
6ad100b
Merge branch 'vesoft-inc:master' into master
randomJoe211 Aug 13, 2021
4543c45
Merge branch 'vesoft-inc:master' into master
randomJoe211 Aug 18, 2021
c991fa6
Merge branch 'vesoft-inc:master' into master
randomJoe211 Aug 18, 2021
0a7ec05
Merge branch 'vesoft-inc:master' into master
randomJoe211 Aug 19, 2021
1ad3c6d
Merge branch 'vesoft-inc:master' into master
randomJoe211 Aug 20, 2021
396f908
Merge branch 'vesoft-inc:master' into master
randomJoe211 Aug 24, 2021
e5d6e5f
Merge branch 'vesoft-inc:master' into master
randomJoe211 Aug 30, 2021
fe26569
Merge branch 'vesoft-inc:master' into master
randomJoe211 Sep 16, 2021
dab75a4
Merge branch 'vesoft-inc:master' into master
randomJoe211 Sep 26, 2021
d000a69
Merge branch 'vesoft-inc:master' into master
randomJoe211 Oct 19, 2021
9d81e03
Merge branch 'vesoft-inc:master' into master
randomJoe211 Oct 19, 2021
d9662d6
Merge branch 'vesoft-inc:master' into master
randomJoe211 Oct 22, 2021
c6222b9
Merge branch 'vesoft-inc:master' into master
randomJoe211 Oct 25, 2021
b0df1d6
Merge branch 'vesoft-inc:master' into master
randomJoe211 Oct 26, 2021
c4b1c24
Merge branch 'vesoft-inc:master' into master
randomJoe211 Oct 27, 2021
2a53a2a
Merge branch 'vesoft-inc:master' into master
randomJoe211 Oct 27, 2021
b7fa7d8
Merge branch 'vesoft-inc:master' into master
randomJoe211 Nov 2, 2021
a074330
Merge branch 'vesoft-inc:master' into master
randomJoe211 Nov 3, 2021
8269028
Merge branch 'vesoft-inc:master' into master
randomJoe211 Nov 4, 2021
a86e4b4
Merge branch 'vesoft-inc:master' into master
randomJoe211 Nov 9, 2021
7f92f24
Merge branch 'vesoft-inc:master' into master
randomJoe211 Nov 10, 2021
1309578
Merge branch 'vesoft-inc:master' into master
randomJoe211 Nov 11, 2021
65c0059
Merge branch 'vesoft-inc:master' into master
randomJoe211 Nov 12, 2021
ae14057
Merge branch 'vesoft-inc:master' into master
randomJoe211 Nov 17, 2021
ebdb8e0
Merge branch 'vesoft-inc:master' into master
randomJoe211 Nov 18, 2021
a9554e9
Merge branch 'vesoft-inc:master' into master
randomJoe211 Nov 25, 2021
3e0c72a
Merge branch 'vesoft-inc:master' into master
randomJoe211 Nov 29, 2021
4b67a56
Merge branch 'vesoft-inc:master' into master
randomJoe211 Dec 1, 2021
c56513b
Merge branch 'vesoft-inc:master' into master
randomJoe211 Dec 7, 2021
c473802
Merge branch 'vesoft-inc:master' into master
randomJoe211 Dec 13, 2021
c53121c
Merge branch 'vesoft-inc:master' into master
randomJoe211 Dec 17, 2021
2068315
Merge branch 'vesoft-inc:master' into master
randomJoe211 Jan 4, 2022
c5e8dcc
Merge branch 'vesoft-inc:master' into master
randomJoe211 Jan 6, 2022
ee8c229
Merge branch 'vesoft-inc:master' into master
randomJoe211 Jan 7, 2022
c0a4e43
Merge branch 'vesoft-inc:master' into master
randomJoe211 Jan 10, 2022
e65182a
Update 3.0 core compilation
randomJoe211 Jan 11, 2022
0619b8c
Update 1.install-nebula-graph-by-compiling-the-source-code.md
randomJoe211 Jan 11, 2022
b7433b8
Update 1.install-nebula-graph-by-compiling-the-source-code.md
randomJoe211 Jan 11, 2022
587049b
update cmake version
randomJoe211 Jan 11, 2022
1eb42e5
Update 1.resource-preparations.md
randomJoe211 Jan 13, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
188 changes: 76 additions & 112 deletions docs-2.0/4.deployment-and-installation/1.resource-preparations.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,18 +2,6 @@

本文介绍编译、安装 Nebula Graph 的要求和建议,以及如何预估集群运行所需的资源。

## 阅读指南

如果是带着如下问题阅读本文,可以直接单击问题跳转查看对应的说明。

- [编译 Nebula Graph 源码的要求是什么?](#nebula_graph_1)

- [测试环境中运行 Nebula Graph 的要求是什么?](#nebula_graph_2)

- [生产环境中运行 Nebula Graph 的要求是什么?](#nebula_graph_3)

- [需要预留多少内存和硬盘空间给 Nebula Graph 集群?](#nebula_graph_4)

## 编译 Nebula Graph 源码要求

### 硬件要求
Expand All @@ -26,7 +14,11 @@

### 操作系统要求

当前仅支持在 Linux 系统中编译 Nebula Graph,建议使用内核版本为`2.6.32`及以上版本的 Linux 系统。
当前仅支持在 Linux 系统中编译 Nebula Graph,建议使用内核版本为`4.15`及以上版本的 Linux 系统。

!!! note

在内核版本低于要求的 Linux 系统中安装 Nebula Graph 可使用 [RPM、DEB](2.compile-and-install-nebula-graph/2.install-nebula-graph-by-rpm-or-deb.md) 或者 [TAR](2.compile-and-install-nebula-graph/4.install-nebula-graph-from-tar.md) 文件。

### 软件要求

Expand All @@ -44,10 +36,8 @@
| readline-devel | 任意稳定版本 | - |
| ncurses-devel | 任意稳定版本 | - |
| zlib-devel | 任意稳定版本 | - |
| gcc | 7.5.0 及以上 | 执行命令`gcc -v`检查版本。 |
| gcc-c++ | 任意稳定版本 | - |
| cmake | 3.9.0 及以上 | 执行命令`cmake --version`检查版本。 |
| gettext | 任意稳定版本 | - |
| g++ | 8.5.0 及以上 | 执行命令`g++ -v`检查版本。 |
| cmake | 3.14.0 及以上| 执行命令`cmake --version`检查版本。 |
| curl | 任意稳定版本 | - |
| redhat-lsb-core | 任意稳定版本 | - |
| libstdc++-static | 任意稳定版本 | 仅在 CentOS 8+、RedHat 8+、Fedora 中需要。 |
Expand All @@ -58,104 +48,78 @@

### 安装编译所需软件

本小节指导下载和安装 Nebula Graph 编译时需要的软件
如果部分依赖软件缺失或者版本不满足要求,根据如下步骤手动安装。可根据实际情况删减命令中要安装的软件、跳过无需执行的步骤

1. 安装依赖包。

- CentOS、RedHat、Fedora 用户请执行如下命令:

```bash
$ yum update
$ yum install -y make \
m4 \
git \
wget \
unzip \
xz \
readline-devel \
ncurses-devel \
zlib-devel \
gcc \
gcc-c++ \
cmake \
gettext \
curl \
redhat-lsb-core \
bzip2
// 仅 CentOS 8+、RedHat 8+、Fedora 需要安装 libstdc++-static 和 libasan。
$ yum install -y libstdc++-static libasan
```

- Debian 和 Ubuntu 用户请执行如下命令:

```bash
$ apt-get update
$ apt-get install -y make \
m4 \
git \
wget \
unzip \
xz-utils \
curl \
lsb-core \
build-essential \
libreadline-dev \
ncurses-dev \
cmake \
gettext
```

2. 检查主机上的 GCC 和 CMake 版本是否正确。版本信息请参见[软件要求](#_4)。

```bash
$ g++ --version
$ cmake --version
```

如果版本正确,用户可以跳过本小节。如果不正确,请根据如下步骤安装:

1. 克隆仓库`nebula`到主机。

```bash
$ git clone -b {{ nebula.branch}} https://github.com/vesoft-inc/nebula.git
```

如需安装特定版本的 Nebula Graph,使用`--branch`或`-b`选项指定相应的 nebula-common 分支。 例如,指定{{ nebula.release }},命令如下:

```bash
$ git clone --branch {{ nebula.branch}} https://github.com/vesoft-inc/nebula.git
```

2. 进入目录`nebula`。

```bash
$ cd nebula
```

3. 执行如下命令安装和启用 GCC 和 CMake。

```bash
// 安装 CMake。
$ ./third-party/install-cmake.sh cmake-install

// 启用 CMake。
$ source cmake-install/bin/enable-cmake.sh

//opt 目录添加写权限。
$ sudo mkdir /opt/vesoft && sudo chmod -R a+w /opt/vesoft

// 安装 GCC。安装到 opt 目录需要写权限,用户也可以修改为其他目录。
$ ./third-party/install-gcc.sh --prefix=/opt

// 启用 GCC。
$ source /opt/vesoft/toolset/gcc/9.3.0/enable
```

3. 执行脚本`install-third-party.sh`。

```bash
$ ./third-party/install-third-party.sh
```
- CentOS、RedHat、Fedora 用户请执行如下命令:

```bash
$ yum update
$ yum install -y make \
m4 \
git \
wget \
unzip \
xz \
readline-devel \
ncurses-devel \
zlib-devel \
gcc \
gcc-c++ \
cmake \
curl \
redhat-lsb-core \
bzip2
// 仅 CentOS 8+、RedHat 8+、Fedora 需要安装 libstdc++-static 和 libasan。
$ yum install -y libstdc++-static libasan
```

- Debian 和 Ubuntu 用户请执行如下命令:

```bash
$ apt-get update
$ apt-get install -y make \
m4 \
git \
wget \
unzip \
xz-utils \
curl \
lsb-core \
build-essential \
libreadline-dev \
ncurses-dev \
cmake
```

2. 检查主机上的 G++ 和 CMake 版本是否正确。版本信息请参见[软件要求](#_4)。

```bash
$ g++ --version
$ cmake --version
```

如果版本正确,则软件依赖已准备完毕,忽略后续步骤;如果不正确,根据不符合版本要求的软件执行后续步骤。

3. 如果 CMake 版本不符合要求,访问 CMake 官网以获取符合需要的版本。
randomJoe211 marked this conversation as resolved.
Show resolved Hide resolved

4. 如果 G++ 版本不符合要求,自行到 GCC 官网获取相应版本或根据以下方法安装合适版本的 GCC。

- CentOS 系统的用户依次执行以下命令:

randomJoe211 marked this conversation as resolved.
Show resolved Hide resolved
```
yum install centos-release-scl
yum install devtoolset-11
scl enable devtoolset-11 'bash'
```

- Ubuntu 系统的用户依次执行以下命令:

```
add-apt-repository ppa:ubuntu-toolchain-r/test
apt install gcc-11 g++-11
```

## 测试环境运行 Nebula Graph 要求

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,10 +14,6 @@

## 安装步骤

!!! Note

从{{ nebula.release }}版本开始,Nebula-Graph、Nebula-Storage、Nebula-Common 的代码仓库合并为 Nebula 代码仓库,因此编译步骤与之前版本的步骤有所不同。

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

- [推荐] 如果需要安装{{nebula.release}}版本的 Nebula Graph,执行如下命令:
Expand Down Expand Up @@ -74,11 +70,7 @@
$ sudo make install
```

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

!!! compatibility

在 2.0.1 中,可以直接使用 `script` 目录下的脚本,不需要将配置文件重新命名。
7. 安装目录下`etc/`目录中(默认为`/usr/local/nebula/etc`)的配置文件为参考模版,用户可以根据需要创建自己的配置文件。如果要使用 `script` 目录下的脚本,启动、停止、重启、中止和查看服务,配置文件需要命名为 `nebula-graph.conf`,`nebula-metad.conf`和`nebula-storaged.conf`。

## 更新 master 版本

Expand Down Expand Up @@ -110,23 +102,23 @@ $ cmake -D<variable>=<value> ...

### ENABLE_WERROR

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

### ENABLE_TESTING

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

### ENABLE_ASAN

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

### CMAKE_BUILD_TYPE

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

- `Debug`

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

- `Release`

Expand All @@ -140,6 +132,18 @@ $ cmake -D<variable>=<value> ...

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

### ENABLE_INCLUDE_WHAT_YOU_USE

默认值为`OFF`。当其值为`ON`且系统中安装了include-what-you-use,系统将在生成 makefile 过程中报告工程源码中包含的冗余头文件。

### NEBULA_USE_LINKER

指定链接程序的方式:

- 默认值为`bfd`,表示使用 ld.bfd 链接程序。
- 如果系统中安装了 lld 链接器, 可设置参数值为`lld`,表示使用 ld.lld 链接程序。
- 如果系统中安装了 gold 链接器,可设为`gold`,表示使用 ld.gold 链接程序。

### CMAKE_C_COMPILER/CMAKE_CXX_COMPILER

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