ClickHouse最版本源码编译(X86)

官方指导:

链接: link.

本地环境编译

  1. 准备clickhouse代码版本:
git clone --recursive https://github.com/ClickHouse/ClickHouse.git

2.搭建ubuntu容器编译环境:

docker pull ubuntu:20.04

3.挂载代码到容器:

docker run -ti  -v /home/helios/:/home ubuntu:20.04 /bin/bash

4.配置国内源(注意是版本20.04):

echo "deb http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse " > /etc/apt/sources.list && \
echo "deb http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse " >> /etc/apt/sources.list && \
echo "deb http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse" >> /etc/apt/sources.list && \
echo "deb http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse" >> /etc/apt/sources.list && \
echo "deb http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse" >> /etc/apt/sources.list && \
echo "deb-src http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse" >> /etc/apt/sources.list && \
echo "deb-src http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse" >> /etc/apt/sources.list && \
echo "deb-src http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse" >> /etc/apt/sources.list && \
echo "deb-src http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse" >> /etc/apt/sources.list && \
echo "deb-src http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse focal" >> /etc/apt/sources.list

5.更新源:

apt-get update

6.安装依赖包:

apt-get install vim 
apt-get install git cmake python ninja-build -y
过程中Geographic area: 6 Asia
Time zone: 70 Shanghai

7.按张clang-12:

apt-get install wget sudo
apt install lsb-release wget software-properties-common
sudo bash -c "$(wget -O - https://apt.llvm.org/llvm.sh)"

8.设置clang环境变量:

export CC=clang-12
export CXX=clang++-12:

9.编译源码:

cd /home/ClickHouse
#git checkout v20.3.9.70-lts -f
mkdir build
cd build
cmake ..
ninja

编译过程:

进度有点像bazel

root@acfa7cf72c85:/home/ClickHouse/build# ninja     
[0/2] Re-checking globbed directories...
[3507/9556] Generating VCSRevision.h
-- Found Git: /usr/bin/git (found version "2.25.1") 
[6356/9556] Creating preprocessed file /home/ClickHouse/contrib/krb5/src/lib/krb5/error_tables/kdb5_err.c
+ /usr/bin/awk -f /home/ClickHouse/contrib/krb5/src/util/et/et_h.awk outfile=kdb5_err.h /home/ClickHouse/contrib/krb5/src/lib/krb5/error_tables/kdb5_err.et
+ /usr/bin/awk -f /home/ClickHouse/contrib/krb5/src/util/et/et_c.awk outfile=kdb5_err.c textdomain= localedir= /home/ClickHouse/contrib/krb5/src/lib/krb5/error_tables/kdb5_err.et
[6357/9556] Creating preprocessed file /home/ClickHouse/contrib/krb5/src/lib/krb5/error_tables/k5e1_err.c
+ /usr/bin/awk -f /home/ClickHouse/contrib/krb5/src/util/et/et_h.awk outfile=k5e1_err.h /home/ClickHouse/contrib/krb5/src/lib/krb5/error_tables/k5e1_err.et
+ /usr/bin/awk -f /home/ClickHouse/contrib/krb5/src/util/et/et_c.awk outfile=k5e1_err.c textdomain= localedir= /home/ClickHouse/contrib/krb5/src/lib/krb5/error_tables/k5e1_err.et
[6359/9556] Creating preprocessed file /home/ClickHouse/contrib/krb5/src/lib/krb5/error_tables/krb524_err.c
+ /usr/bin/awk -f /home/ClickHouse/contrib/krb5/src/util/et/et_h.awk outfile=krb524_err.h /home/ClickHouse/contrib/krb5/src/lib/krb5/error_tables/krb524_err.et
+ /usr/bin/awk -f /home/ClickHouse/contrib/krb5/src/util/et/et_c.awk outfile=krb524_err.c textdomain= localedir= /home/ClickHouse/contrib/krb5/src/lib/krb5/error_tables/krb524_err.et
[6360/9556] Creating preprocessed file /home/ClickHouse/contrib/krb5/src/lib/krb5/error_tables/asn1_err.c
+ /usr/bin/awk -f /home/ClickHouse/contrib/krb5/src/util/et/et_h.awk outfile=asn1_err.h /home/ClickHouse/contrib/krb5/src/lib/krb5/error_tables/asn1_err.et
+ /usr/bin/awk -f /home/ClickHouse/contrib/krb5/src/util/et/et_c.awk outfile=asn1_err.c textdomain= localedir= /home/ClickHouse/contrib/krb5/src/lib/krb5/error_tables/asn1_err.et
[6361/9556] Creating preprocessed file /home/ClickHouse/contrib/krb5/src/lib/krb5/error_tables/krb5_err.c
+ /usr/bin/awk -f /home/ClickHouse/contrib/krb5/src/util/et/et_h.awk outfile=krb5_err.h /home/ClickHouse/contrib/krb5/src/lib/krb5/error_tables/krb5_err.et
+ /usr/bin/awk -f /home/ClickHouse/contrib/krb5/src/util/et/et_c.awk outfile=krb5_err.c textdomain= localedir= /home/ClickHouse/contrib/krb5/src/lib/krb5/error_tables/krb5_err.et
[6364/9556] Creating preprocessed file /home/ClickHouse/contrib/krb5/src/lib/krb5/error_tables/kv5m_err.c
+ /usr/bin/awk -f /home/ClickHouse/contrib/krb5/src/util/et/et_h.awk outfile=kv5m_err.h /home/ClickHouse/contrib/krb5/src/lib/krb5/error_tables/kv5m_err.et
+ /usr/bin/awk -f /home/ClickHouse/contrib/krb5/src/util/et/et_c.awk outfile=kv5m_err.c textdomain= localedir= /home/ClickHouse/contrib/krb5/src/lib/krb5/error_tables/kv5m_err.et
[6368/9556] Creating preprocessed file /home/ClickHouse/contrib/krb5/src/lib/gssapi/krb5/gssapi_err_krb5.c
+ /usr/bin/awk -f /home/ClickHouse/contrib/krb5/src/util/et/et_h.awk outfile=gssapi_err_krb5.h /home/ClickHouse/contrib/krb5/src/lib/gssapi/krb5/gssapi_err_krb5.et
+ /usr/bin/awk -f /home/ClickHouse/contrib/krb5/src/util/et/et_c.awk outfile=gssapi_err_krb5.c textdomain= localedir= /home/ClickHouse/contrib/krb5/src/lib/gssapi/krb5/gssapi_err_krb5.et
[6370/9556] Creating preprocessed file /home/ClickHouse/contrib/krb5/src/lib/gssapi/generic/gssapi_err_generic.c
+ /usr/bin/awk -f /home/ClickHouse/contrib/krb5/src/util/et/et_h.awk outfile=gssapi_err_generic.h /home/ClickHouse/contrib/krb5/src/lib/gssapi/generic/gssapi_err_generic.et
+ /usr/bin/awk -f /home/ClickHouse/contrib/krb5/src/util/et/et_c.awk outfile=gssapi_err_generic.c textdomain= localedir= /home/ClickHouse/contrib/krb5/src/lib/gssapi/generic/gssapi_err_generic.et
[6371/9556] Creating preprocessed file /home/ClickHouse/contrib/krb5/src/util/profile/prof_err.c
+ /usr/bin/awk -f /home/ClickHouse/contrib/krb5/src/util/et/et_h.awk outfile=prof_err.h /home/ClickHouse/contrib/krb5/src/util/profile/prof_err.et
+ /usr/bin/awk -f /home/ClickHouse/contrib/krb5/src/util/et/et_c.awk outfile=prof_err.c textdomain= localedir= /home/ClickHouse/contrib/krb5/src/util/profile/prof_err.et
[9556/9556] cd /home/ClickHouse/build/programs && /usr/bin/cmake -E create_symlink clickhouse clickhouse-server

编译后的结果:

root@acfa7cf72c85:/home/ClickHouse/build# ll programs/
total 3699136
drwxr-xr-x 17 root root       4096 May 17 11:15 ./
drwxr-xr-x 13 root root       4096 May 17 10:04 ../
drwxr-xr-x  3 root root         28 May 17 09:42 CMakeFiles/
-rw-r--r--  1 root root        571 May 17 09:42 CTestTestfile.cmake
drwxr-xr-x  4 root root         97 May 17 09:42 bash-completion/
drwxr-xr-x  3 root root        115 May 17 11:08 benchmark/
-rwxr-xr-x  1 root root 1910491432 May 17 11:15 clickhouse*
lrwxrwxrwx  1 root root         10 May 17 11:15 clickhouse-benchmark -> clickhouse*
lrwxrwxrwx  1 root root         10 May 17 11:15 clickhouse-client -> clickhouse*
lrwxrwxrwx  1 root root         10 May 17 11:15 clickhouse-compressor -> clickhouse*
lrwxrwxrwx  1 root root         10 May 17 11:15 clickhouse-copier -> clickhouse*
lrwxrwxrwx  1 root root         10 May 17 11:15 clickhouse-extract-from-config -> clickhouse*
lrwxrwxrwx  1 root root         10 May 17 11:15 clickhouse-format -> clickhouse*
lrwxrwxrwx  1 root root         10 May 17 11:15 clickhouse-git-import -> clickhouse*
-rwxr-xr-x  1 root root  935721632 May 17 11:08 clickhouse-library-bridge*
lrwxrwxrwx  1 root root         10 May 17 11:15 clickhouse-local -> clickhouse*
lrwxrwxrwx  1 root root         10 May 17 11:15 clickhouse-obfuscator -> clickhouse*
-rwxr-xr-x  1 root root  941675496 May 17 11:08 clickhouse-odbc-bridge*
lrwxrwxrwx  1 root root         10 May 17 11:15 clickhouse-server -> clickhouse*
drwxr-xr-x  3 root root        112 May 17 11:08 client/
-rw-r--r--  1 root root       5348 May 17 09:42 cmake_install.cmake
drwxr-xr-x  3 root root        116 May 17 11:07 compressor/
drwxr-xr-x  3 root root        112 May 17 11:15 copier/
drwxr-xr-x  3 root root        125 May 17 11:07 extract-from-config/
drwxr-xr-x  3 root root        112 May 17 11:15 format/
drwxr-xr-x  3 root root        116 May 17 11:07 git-import/
drwxr-xr-x  3 root root        113 May 17 11:07 install/
drwxr-xr-x  3 root root         78 May 17 09:42 library-bridge/
drwxr-xr-x  3 root root        111 May 17 11:15 local/
drwxr-xr-x  3 root root        116 May 17 11:07 obfuscator/
drwxr-xr-x  4 root root         91 May 17 09:42 odbc-bridge/
drwxr-xr-x  3 root root        230 May 17 11:15 server/

client和server版本:

root@acfa7cf72c85:/home/ClickHouse/build/programs# ./clickhouse client --version
ClickHouse client version 21.6.1.1.
root@acfa7cf72c85:/home/ClickHouse/build/programs# ./clickhouse server --version
ClickHouse server version 21.6.1.1.
root@acfa7cf72c85:/home/ClickHouse/build/programs# 

编译后的代码占磁盘大小

26G	./ClickHouse
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值