---
title: 源码编译安装
description: "1. 进入安装目录，安装目录可根据实际情况修改。"
url: https://www.hikunpeng.com/document/detail/zh/kunpengbds/ecosystemEnable/ClickHouse/kunpengclickhouse_02_0007.html
sourcePath: /source/zh/kunpengbds/ecosystemEnable/ClickHouse/kunpengclickhouse_02_0007.html
indexId: bcbdde70ea1563ecbc13f670296598b1d7618773d6ba1c8f2928790ab032126379
---
# 源码编译安装

1. 进入安装目录，安装目录可根据实际情况修改。
  1 cd /home

2. 下载源码。
  1 2 3 4 git clone --recursive --shallow-submodules https://github.com/ClickHouse/ClickHouse.git -b v24.3.11.7-lts --single-branch --depth=1 cd ClickHouse git submodule sync git submodule update --init --recursive

  因为需要同步大量文件，此过程可能需要较长时间。

3. 源码下载及子模块更新完成后，可以执行以下步骤检查源码的完整性。

  a. 在“/home/ClickHouse”目录下创建检查脚本。
    1 vi file_check.sh

  b. 按“i”进入编辑模式，在文件中添加以下内容。用于确保每个文件都是包含文件的，不是空的。

```
#!/bin/bash
base_dir=$(cd $(dirname "$0")&&pwd)
flag=0
for dir in $(ls -d "$base_dir"/contrib/*/);
do
file_count=$(ls -1 "$dir" | wc -l)
if [ "$file_count" -eq 0 ]; then
echo "Directory with 0 files: $dir"
flag=1
fi
done
if [ $flag -eq 0 ]; then
echo "检查完成 contrib目录下不存在空文件夹"
fi
```


  c. 按“Esc”键，输入:wq!，按“Enter”保存并退出编辑。
  d. 执行脚本。
    1 2 chmod +x file_check.sh ./file_check.sh

    检查通过后，提示“检查完成contrib目录下不存在空文件夹”。

4. 编译选项修改。

  a. 进入“/home/ClickHouse/cmake”目录，打开“cpu_features.cmake”文件。
    1 2 cd /home/ClickHouse/cmake vi cpu_features.cmake

  b. 按“i”进入编辑模式，修改NO_ARMV81_OR_HIGHER（当前版本下为第26行）编译选项下的内容，如下所示。
    1 set (COMPILER_FLAGS "${COMPILER_FLAGS} -march=armv8.2-a+simd+crypto+dotprod")

    NO_ARMV81_OR_HIGHER编译选项中新增SIMD指令，同时编译选项中加上-DENABLE_THINLTO=ON，会对性能有所提升。

  c. 按“Esc”键，输入:wq!，按“Enter”保存并退出编辑。
5. 构建与编译。
  1 2 3 cd /home/ClickHouse/ mkdir build cmake -DPARALLEL_COMPILE_JOBS=`nproc` -DENABLE_CLICKHOUSE_SELF_EXTRACTING=1 -DNO_ARMV81_OR_HIGHER=1 -DENABLE_BUILD_PROFILING=ON -DPARALLEL_LINK_JOBS=32 -DENABLE_THINLTO=ON -DENABLE_TESTS=OFF -DENABLE_RUST=OFF -S . -B build

  成功构建时终端回显如下。

  构建完成后的“build”目录结构如下（通过ls ./build查看）。

  1 cmake --build build -j `nproc`

  编译完成后会在“build/programs”目录下生成如下文件（通过ll ./build/programs查看）。

6. 安装ClickHouse，在出现“Enter password for the default user”的字样处直接回车。

```
./build/programs/clickhouse install
```
