ClickHouse最版本源码编译

  • 官方指导:
  • 本地环境编译
  • 编译过程:
  • 编译后的结果:
  • client和server版本:
  • 编译后的代码占磁盘大小

官方指导:

链接: 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

ClickHouse最版本源码编译(X86)相关推荐

  1. 定制化ROM采坑之路(1):魔趣8.1版本源码下载和编译过程

    前言 记得当年刚接触Android的时候,就看有关老罗的文章倒是让我的安卓内功提升不少,但是由于工作都是停留在应用层的缘故,我几乎对这块并没有深入研究,最近公司的新产品对Framework层的开发有所 ...

  2. [转帖]nginx1.17.2版本源码安装

    nginx1.17.2版本源码安装 原创: 沧海书生 Ansible爱好者 昨天 公众号里面的内容 这里简单测试了下在x86的虚拟机里面编译安装 nginx 仅make make install ng ...

  3. CYQ.Data 数据框架 发放V1.5版本源码

    2019独角兽企业重金招聘Python工程师标准>>> 本篇的内容很简单,就发放V1.5版本源码,同时补充了所有发布版本的API文档. 具体相关下载地址见: 秋色园下载中心:http ...

  4. CYQ.Data 数据框架 加快开源速度 发布V1.5.5版本源码

    前言: 上周发布:秋色园QBlog V2.5 后台管理系统源码发布下载 之后,截至今日,后台统计的下载次数是:1321. 在此感谢大家的支持与关注. 秋色园QBlog 后台管理系统是 CYQ.Data ...

  5. mac版源码编译安装mysql

    mac版源码编译安装mysql 一.基础环境 1.清理环境(清理系统自带的Mariadb和boost) CentOS 7 版本的系统默认自带安装了MariaDB,需要先清理. ##查询已安装的mari ...

  6. MongoDB4.4版本源码部署分片集群

    MongoDB4.4版本源码部署分片集群 node1:39.103.204.27 node2:49.232.197.39 node3:43.138.41.190 shard1 PRIMARY shar ...

  7. vue2.6.11版本源码运行报错问题处理

    vue2.6.11版本源码运行报错问题处理 1.源码下载 git clone http://github.com/vuejs/vue.git 2.安装npm依赖包 npm install 3.运行报错 ...

  8. 人机博弈 围棋程序GNU GO 所有版本源码及使用方法

    GNU Go是免费的带源代码的人机对弈软件,棋力在九级左右.和其它GNU 软件一样, 它遵从 GNU 公用许可证GPL.你可免费获得它的源代码,并可自由使用和修改. 但GNU GO只提供字符界面,更多 ...

  9. 2022最新彩虹易支付系统二开版本源码/新增推广返利模式+工单系统

    源码介绍 2022最新彩虹易支付系统二开版本源码/新增推广返利模式+工单系统 系统环境要求:PHP>=7.1 + MySQL5.6 更新日志: 2022/10/26 1.新增用户登陆邮箱提醒(防 ...

最新文章

  1. mysql ceill_MYSQL常用函数
  2. raid0、1、5、10创建
  3. 34. Leetcode 234. 回文链表 (链表-双指针)
  4. 测度定义_Real analysis:外测度的一个等价定义
  5. java扫描指定package注解_java随笔-扫描使用指定注解的类与方法
  6. python爬虫抓取文本_Python实现可获取网易页面所有文本信息的网易网络爬虫功能示例...
  7. Java在Windows下导出xml文件到Linux服务器上
  8. 把关与服务的关系_泉州代做投标书-电子标书值得信赖 - 泉州广告服务
  9. 二级python和office哪个难_对于操作office来说,python能与vbs相比吗?谁强谁弱呢?...
  10. 图解TCPIP---第六章---传输层TCPUDP
  11. 用python实现代码雨(电影黑客帝国里的效果,代码可直接运行)
  12. 智能爆炸的真实(下)
  13. 沧州中考计算机考试时间,2017年沧州市中考考试科目及时间
  14. (Python)sum函数的用法
  15. 计算机网络-自顶向下方法-笔记【第2章-应用层】
  16. Kyligence + 亚马逊云科技丨实现云上的精细化运营和数字化指挥
  17. 关于汽车诊断OBD的理解(ISO15031-5)(转发)
  18. 18-4-16《Population-based VS. Single-solution Heuristics for the Travelling Thief Problem》2-opt,TTP
  19. Use Configs
  20. 区块链报错 5 | Contract has not been deployed to detect network (network/artifact mismatch)

热门文章

  1. 使用原生js实现点击按钮展示不同状态内容
  2. 对比腾讯、163、商务密邮、360加密邮,发加密邮件用哪个更好
  3. Autocad2013中文破解版(64位)安装图文教程
  4. WIN10系统下提示文件被另外一个程序打开无法重命名、删除、移动的解决方法
  5. ecm titanium_如何使用Titanium Backup备份和还原Android手机
  6. 罗斯蒙特3051变送器以后的发展方向
  7. app开发和web开发_了解2020年现代Web App开发的概念
  8. 边界扫描JTAG接口测试用例的编写
  9. 金成股份冲刺上交所:年营收5.5亿 姬蕾姐弟控制98%股权
  10. 硅晶圆出货量大涨带好消息:电脑手机数码产品价格暂时平稳