Esta guía de compilación está dirigida a colaboradores que modifican el propio ClickHouse.Si no va a modificar el código fuente de ClickHouse, puede instalar una versión precompilada de ClickHouse como se describe en Quick Start.
Instalar los requisitos previos
Primero, consulta la documentación general sobre los requisitos previos. A continuación, instala Homebrew y ejecuta Luego, ejecuta:Al igual que ClickHouse también fija la versión de la cadena de herramientas de Rust que utiliza el módulo contrib
llvm, el paquete rustup de Homebrew es keg-only, por lo que su directorio bin no se añade automáticamente a PATH. Expórtalo de la misma forma en que se exporta el PATH de llvm en Build ClickHouse:corrosion. Instálala y selecciónala siguiendo la sección Instalar el compilador de Rust de la guía de build para Linux. Si no lo haces, cmake falla en el módulo contrib corrosion con el error Cannot find nightly-<date> Rust toolchain.Apple usa de forma predeterminada un sistema de archivos que no distingue entre mayúsculas y minúsculas. Aunque esto normalmente no afecta a la compilación (sobre todo, las compilaciones desde cero funcionarán), puede causar problemas en operaciones con archivos como
git mv.
Para trabajar seriamente en desarrollo en macOS, asegúrate de que el código fuente esté almacenado en un volumen de disco que sí distinga entre mayúsculas y minúsculas; por ejemplo, consulta estas instrucciones.Compilar ClickHouse
Para compilarlo, debe usar el compilador Clang de Homebrew:El comando
brew install llvm sin más siempre instala la versión más reciente de LLVM disponible en Homebrew, que puede ser más nueva que la versión de Clang fijada para CI y los builds de Linux (consulte Instalar el compilador Clang). Una versión más reciente de Clang puede activar diagnósticos de -Weverything que aún no se suprimen en el build y que hacen que falle con -Werror. Si esto ocurre, en lugar de desactivar las advertencias, instale la versión principal fijada, por ejemplo, mediante una fórmula versionada (brew install llvm@<version>), si Homebrew todavía la ofrece.Si se encuentra con errores
ld: archive member '/' not a mach-o file in ... durante el enlazado, es posible que necesite
usar llvm-ar estableciendo la opción -DCMAKE_AR=/opt/homebrew/opt/llvm/bin/llvm-ar.Consideraciones
Si tiene previsto ejecutarclickhouse-server, asegúrese de aumentar la variable maxfiles del sistema.
Tendrá que usar sudo.
/Library/LaunchDaemons/limit.maxfiles.plist con el siguiente contenido:
ulimit -n o launchctl limit maxfiles.