本构建指南适用于修改 ClickHouse 本身的贡献者。如果您不修改 ClickHouse 源代码,可以按照快速入门中的说明安装预编译的 ClickHouse。
安装前置条件
首先,请参阅通用的前置条件文档。 接下来,安装 Homebrew 并运行 然后运行:与 此外,ClickHouse 还固定了
llvm 一样,Homebrew 的 rustup 也是 keg-only 的,因此其 bin 目录不会自动添加到 PATH 中。请参照 构建 ClickHouse 中导出 llvm 的 PATH 的方式将其导出:corrosion contrib 模块所用的 Rust 工具链版本。请按照 Linux 构建指南中的安装 Rust 编译器一节安装并选用该工具链。否则,cmake 会在处理 corrosion contrib 模块时失败,并报错 Cannot find nightly-<date> Rust toolchain。Apple 默认使用不区分大小写的文件系统。虽然这通常不会影响编译 (尤其是 scratch make 仍可正常工作) ,但可能会给
git mv 之类的文件操作带来困扰。
如果要在 macOS 上进行较为正式的开发,请确保将源代码存放在区分大小写的磁盘卷上,例如可参阅这些说明。构建 ClickHouse
构建时必须使用 Homebrew 的 Clang 编译器:直接执行
brew install llvm 总是会安装 Homebrew 中最新的 LLVM 发行版,其版本可能比 CI 和 Linux 构建所固定使用的 Clang 版本更新 (参见 安装 Clang 编译器) 。较新的 Clang 可能会启用构建中尚未屏蔽的 -Weverything 诊断,进而在 -Werror 下导致构建失败。遇到这种情况时,请改为安装固定的主版本,而不是禁用警告。例如,如果 Homebrew 仍提供该版本,可通过版本化的 formula (brew install llvm@<version>) 进行安装。如果你在链接过程中遇到
ld: archive member '/' not a mach-o file in ... 错误,可能需要
通过设置标志 `-DCMAKE_AR=/opt/homebrew/opt/llvm/bin/llvm-ar“ 来改用 llvm-ar。注意事项
如果你打算运行clickhouse-server,请务必提高系统的 maxfiles 变量值。
需要使用 sudo。
/Library/LaunchDaemons/limit.maxfiles.plist 文件:
ulimit -n 或 launchctl limit maxfiles 命令。