Compiling with LDB toolchain
This document describes how to compile Doris using the LDB toolchain. This method is currently used as a supplement to the Docker compilation method to facilitate developers and users without a Docker environment to compile Doris source code.
You can still compile the latest code using the Docker development image:
apache/doris:build-env-ldb-toolchain-latest
Thanks to Amos Bird for this contribution.
Prepare the environment
This works for most Linux distributions (CentOS, Ubuntu, etc.).
Download
ldb_toolchain_gen.sh
The latest
ldb_toolchain_gen.sh
can be downloaded from here. This script is used to generate the ldb toolchain.For more information, you can visit https://github.com/amosbird/ldb_toolchain_gen
Execute the following command to generate the ldb toolchain
sh ldb_toolchain_gen.sh /path/to/ldb_toolchain/
where
/path/to/ldb_toolchain/
is the directory where the toolchain is installed.After successful execution, the following directory structure will be created under
/path/to/ldb_toolchain/
.├── bin
├── include
├── lib
├── share
├── test
└── usr
Download and install other compiled components
If your environment is somehow minimal, additional packages should be installed before compiling Doris. The following instructions describe how to setup a minimal CentOS 6 box to compile Doris. Other linux distros should be similar.
# install required system packages
sudo yum install -y byacc patch automake libtool make which file ncurses-devel gettext-devel unzip bzip2 zip util-linux wget git python2
# install autoconf-2.69
wget http://ftp.gnu.org/gnu/autoconf/autoconf-2.69.tar.gz && \
tar zxf autoconf-2.69.tar.gz && \
cd autoconf-2.69 && \
./configure && \
make && \
make install
# install bison-3.0.4
wget http://ftp.gnu.org/gnu/bison/bison-3.0.4.tar.gz && \
tar xzf bison-3.0.4.tar.gz && \
cd bison-3.0.4 && \
./configure && \
make && \
make install
Download Doris source code
git clone https://github.com/apache/doris.git
After downloading, go to the Doris source directory, create the
custom_env.sh
, file, and set the PATH environment variable, e.g.export JAVA_HOME=/path/to/java/
export PATH=$JAVA_HOME/bin:$PATH
export PATH=/path/to/maven/bin:$PATH
export PATH=/path/to/node/bin:$PATH
export PATH=/path/to/ldb_toolchain/bin:$PATH
Compiling Doris
Enter the Doris source code directory and execute:
$ cat /proc/cpuinfo | grep avx2
Check whether the compilation machine supports the avx2 instruction set
If it is not supported, use the following command to compile
$ USE_AVX2=0 sh build.sh
If supported, execute sh build.sh
directly
This script will compile the third-party libraries first and then the Doris components (FE, BE) later. The compiled output is in the output/
directory.