Это руководство по сборке предназначено для участников, которые вносят изменения в сам ClickHouse.Если вы не изменяете исходный код ClickHouse, можно установить готовую сборку ClickHouse, как описано в Быстрый старт.
Установите необходимые компоненты
Сначала ознакомьтесь с общей документацией по предварительным требованиям. Затем установите Homebrew и выполните Затем выполните:Как и Кроме того, ClickHouse фиксирует версию набора инструментов Rust, который используется contrib-модулем
llvm, пакет rustup из Homebrew является keg-only, поэтому его каталог bin не добавляется в PATH автоматически. Экспортируйте его так же, как PATH для llvm в разделе Сборка ClickHouse: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.