使用 LDB toolchain 编译

本文档主要介绍如何使用 LDB toolchain 编译 Doris。该方式目前作为 Docker 编译方式的补充,方便没有 Docker 环境的开发者和用户编译 Doris 源码。

您依然可以使用 Docker 开发镜像编译最新代码:apache/incubator-doris:build-env-ldb-toolchain-latest

感谢 Amos Bird使用 LDB toolchain 编译 - 图1 (opens new window) 的贡献。

准备编译环境

该方式适用于绝大多数 Linux 发行版(CentOS,Ubuntu 等)。

  1. 下载 ldb_toolchain_gen.sh

    可以从 这里使用 LDB toolchain 编译 - 图2 (opens new window) 下载最新的 ldb_toolchain_gen.sh。该脚本用于生成 ldb toolchain。

    更多信息,可访问 https://github.com/amosbird/ldb_toolchain_gen使用 LDB toolchain 编译 - 图3 (opens new window)

  2. 执行以下命令生成 ldb toolchain

    1. sh ldb_toolchain_gen.sh /path/to/ldb_toolchain/

    其中 /path/to/ldb_toolchain/ 为安装 toolchain 目录。

    执行成功后,会在 /path/to/ldb_toolchain/ 下生成如下目录结构:

    1. ├── bin
    2. ├── include
    3. ├── lib
    4. ├── share
    5. ├── test
    6. └── usr
  3. 下载并安装其他编译组件

    1. Java8使用 LDB toolchain 编译 - 图4 (opens new window)
    2. Apache Maven 3.6.3使用 LDB toolchain 编译 - 图5 (opens new window)
    3. Node v12.13.0使用 LDB toolchain 编译 - 图6 (opens new window)

    对于不同的 Linux 发行版,可能默认包含的组件不同。因此可能需要安装一些额外的组件。下面以 centos6 为例,其他发行版类似:

    1. # install required system packages
    2. sudo yum install -y byacc patch automake libtool make which file ncurses-devel gettext-devel unzip bzip2 zip util-linux wget git python2
    3. # install autoconf-2.69
    4. wget http://ftp.gnu.org/gnu/autoconf/autoconf-2.69.tar.gz && \
    5. tar zxf autoconf-2.69.tar.gz && \
    6. cd autoconf-2.69 && \
    7. ./configure && \
    8. make && \
    9. make install
    10. # install bison-3.0.4
    11. wget http://ftp.gnu.org/gnu/bison/bison-3.0.4.tar.gz && \
    12. tar xzf bison-3.0.4.tar.gz && \
    13. cd bison-3.0.4 && \
    14. ./configure && \
    15. make && \
    16. make install
  4. 下载 Doris 源码

    1. git clone https://github.com/apache/incubator-doris.git

    下载完成后,进入到 doris 源码目录,创建 custom_env.sh,文件,并设置 PATH 环境变量,如:

    1. export JAVA_HOME=/path/to/java/
    2. export PATH=$JAVA_HOME/bin:$PATH
    3. export PATH=/path/to/maven/bin:$PATH
    4. export PATH=/path/to/node/bin:$PATH
    5. export PATH=/path/to/ldb_toolchain/bin:$PATH

编译 Doris

进入 Doris 源码目录,执行:

  1. sh build.sh

该脚本会先编译第三方库,之后再编译 Doris 组件(FE、BE)。编译产出在 output/ 目录下。