How to Build ClickHouse Release Package

Install Git and Pbuilder

$ sudo apt-get update
$ sudo apt-get install git pbuilder debhelper lsb-release fakeroot sudo debian-archive-keyring debian-keyring

Checkout ClickHouse Sources

$ git clone --recursive --branch master
$ cd ClickHouse

Run Release Script

$ ./release

How to Build ClickHouse for Development

The following tutorial is based on the Ubuntu Linux system. With appropriate changes, it should also work on any other Linux distribution. Only x86_64 with SSE 4.2 is supported. Support for AArch64 is experimental.

To test for SSE 4.2, do

$ grep -q sse4_2 /proc/cpuinfo && echo "SSE 4.2 supported" || echo "SSE 4.2 not supported"

Install Git and CMake

$ sudo apt-get install git cmake ninja-build

Or cmake3 instead of cmake on older systems.

Install GCC 9

There are several ways to do this.

Install from a PPA Package

$ sudo apt-get install software-properties-common
$ sudo apt-add-repository ppa:ubuntu-toolchain-r/test
$ sudo apt-get update
$ sudo apt-get install gcc-9 g++-9

Install from Sources

Look at utils/ci/

Use GCC 9 for Builds

$ export CC=gcc-9
$ export CXX=g++-9

Install Required Libraries from Packages

$ sudo apt-get install libicu-dev libreadline-dev gperf

Checkout ClickHouse Sources

$ git clone --recursive


$ git clone --recursive
$ cd ClickHouse

Build ClickHouse

$ mkdir build
$ cd build
$ cmake ..
$ ninja
$ cd ..

To create an executable, run ninja clickhouse. This will create the dbms/programs/clickhouse executable, which can be used with client or server arguments.