Skip to main content
Это руководство по сборке предназначено для участников, которые вносят изменения в сам ClickHouse.Если вы не изменяете исходный код ClickHouse, можно установить готовую сборку ClickHouse, как описано в Быстрый старт.
ClickHouse можно собрать на macOS x86_64 (Intel) и arm64 (Apple Silicon), начиная с macOS 10.15 (Catalina). В качестве компилятора поддерживается только Clang из Homebrew.

Установите необходимые компоненты

Сначала ознакомьтесь с общей документацией по предварительным требованиям. Затем установите Homebrew и выполните Затем выполните:
Как и llvm, пакет rustup из Homebrew является keg-only, поэтому его каталог bin не добавляется в PATH автоматически. Экспортируйте его так же, как PATH для llvm в разделе Сборка ClickHouse:
Кроме того, ClickHouse фиксирует версию набора инструментов Rust, который используется contrib-модулем corrosion. Установите и выберите эту версию, следуя инструкциям из раздела Установите компилятор Rust руководства по сборке для Linux. Иначе cmake завершится ошибкой на contrib-модуле corrosion с сообщением Cannot find nightly-<date> Rust toolchain.
Apple по умолчанию использует регистронезависимую файловую систему. Хотя это обычно не влияет на компиляцию (особенно при сборке с нуля), это может вызывать проблемы при файловых операциях, таких как git mv. Для серьёзной разработки на macOS убедитесь, что исходный код хранится на дисковом томе с чувствительностью к регистру, см., например, эти инструкции.

Сборка ClickHouse

Для сборки необходимо использовать компилятор Clang из Homebrew:
Команда brew install llvm без указания версии всегда устанавливает последний релиз LLVM из Homebrew, который может оказаться новее версии Clang, закреплённой для сборок CI и Linux (см. Установка компилятора Clang). Более новый Clang может включать диагностики -Weverything, которые в сборке ещё не подавлены, и сборка завершится ошибкой из-за -Werror. В этом случае не отключайте предупреждения, а установите закреплённую мажорную версию, например через версионируемую формулу (brew install llvm@<version>), если она ещё доступна в Homebrew.
Если при компоновке возникает ошибка ld: archive member '/' not a mach-o file in ..., возможно, потребуется использовать llvm-ar, задав флаг -DCMAKE_AR=/opt/homebrew/opt/llvm/bin/llvm-ar.

Важные замечания

Если вы планируете запускать clickhouse-server, обязательно увеличьте значение системной переменной maxfiles.
Для этого потребуются права sudo.
Для этого создайте файл /Library/LaunchDaemons/limit.maxfiles.plist со следующим содержимым:
Установите для файла правильные права доступа:
Убедитесь, что файл корректен:
Загрузите файл (или перезагрузите систему):
Чтобы проверить, всё ли работает, используйте команды ulimit -n или launchctl limit maxfiles.