跳至主要内容

如何在 macOS 上构建 ClickHouse

您无需自行构建 ClickHouse!

您可以按照 快速入门 中的说明安装预构建的 ClickHouse。请按照 macOS (Intel)macOS (Apple 芯片) 安装说明进行操作。

构建适用于基于 macOS 10.15 (Catalina) 或更高版本的 x86_64 (Intel) 和 arm64 (Apple 芯片),并使用 Homebrew 的原生 Clang 编译器。

注意

也可以使用 Apple 的 XCode apple-clang 编译,但强烈不建议这样做。

安装 Homebrew

首先安装 Homebrew

对于 Apple 的 Clang(不建议):安装 XCode 和命令行工具

从 App Store 安装最新的 XCode

至少打开一次以接受最终用户许可协议并自动安装所需的组件。

然后,确保已在系统中安装并选择了最新的命令行工具

sudo rm -rf /Library/Developer/CommandLineTools
sudo xcode-select --install

安装所需的编译器、工具和库

brew update
brew install ccache cmake ninja libtool gettext llvm gcc binutils grep findutils nasm

签出 ClickHouse 源代码

git clone --recursive [email protected]:ClickHouse/ClickHouse.git
# ...alternatively, you can use https://github.com/ClickHouse/ClickHouse.git as the repo URL.

构建 ClickHouse

要使用 Homebrew 的原生 Clang 编译器构建(唯一 推荐 的方法)

cd ClickHouse
mkdir build
export PATH=$(brew --prefix llvm)/bin:$PATH
cmake -G Ninja -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCMAKE_C_COMPILER=$(brew --prefix llvm)/bin/clang -DCMAKE_CXX_COMPILER=$(brew --prefix llvm)/bin/clang++ -S . -B build
cmake --build build
# The resulting binary will be created at: build/programs/clickhouse

要在 XCode IDE 中使用 XCode 原生 AppleClang 编译器构建(此选项仅适用于开发构建和工作流,除非您知道自己在做什么,否则 不建议 使用)

cd ClickHouse
rm -rf build
mkdir build
cd build
XCODE_IDE=1 ALLOW_APPLECLANG=1 cmake -G Xcode -DCMAKE_BUILD_TYPE=Debug -DENABLE_JEMALLOC=OFF ..
cmake --open .
# ...then, in XCode IDE select ALL_BUILD scheme and start the building process.
# The resulting binary will be created at: ./programs/Debug/clickhouse

注意事项

如果您打算运行 clickhouse-server,请确保增加系统的 maxfiles 变量。

注意

您需要使用 sudo。

为此,请使用以下内容创建 /Library/LaunchDaemons/limit.maxfiles.plist 文件

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN"
"http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>limit.maxfiles</string>
<key>ProgramArguments</key>
<array>
<string>launchctl</string>
<string>limit</string>
<string>maxfiles</string>
<string>524288</string>
<string>524288</string>
</array>
<key>RunAtLoad</key>
<true/>
<key>ServiceIPC</key>
<false/>
</dict>
</plist>

为文件赋予正确的权限

sudo chown root:wheel /Library/LaunchDaemons/limit.maxfiles.plist

验证文件是否正确

plutil /Library/LaunchDaemons/limit.maxfiles.plist

加载文件(或重启)

sudo launchctl load -w /Library/LaunchDaemons/limit.maxfiles.plist

要检查它是否正常工作,请使用 ulimit -nlaunchctl limit maxfiles 命令。

运行 ClickHouse 服务器

cd ClickHouse
./build/programs/clickhouse-server --config-file ./programs/server/config.xml