Esta guía de compilación está dirigida a colaboradores que modifican ClickHouse.Si no vas a modificar el código fuente de ClickHouse, puedes instalar una versión precompilada de ClickHouse como se describe en Quick Start.
- x86_64
- AArch64
- PowerPC 64 LE (experimental)
- s390/x (experimental)
- RISC-V 64 (experimental)
Suposiciones
Instalar los requisitos previos
Instalar el compilador Clang
Instalar el compilador de Rust (opcional)
Rust es una dependencia opcional de ClickHouse.
Si Rust no está instalado, algunas funcionalidades de ClickHouse se omitirán durante la compilación.
rustup.
Al igual que con las dependencias de C++, ClickHouse usa vendoring para controlar exactamente qué se instala y evitar depender de servicios de terceros (como el repositorio crates.io).
Aunque en modo release debería funcionar cualquier versión moderna del toolchain de rustup con estas dependencias, si planeas habilitar sanitizers debes usar una versión que coincida exactamente con la misma std que se usa en CI (para la que vendoramos los crates):
Compilar ClickHouse
build separado dentro de ClickHouse que contenga todos los artefactos de compilación:
build_release, build_debug, etc.) para distintos tipos de compilación.
Opcional: Si tiene instaladas varias versiones del compilador, puede indicar el compilador exacto que desea usar.
-O), lo que ofrece una mejor experiencia de depuración.
Además, las excepciones internas de tipo LOGICAL_ERROR provocan un cierre inmediato en lugar de fallar de forma controlada.
Si desea usar un depurador como gdb, añada
-D DEBUG_O_LEVEL="0" al comando anterior para eliminar todas las optimizaciones del compilador, ya que pueden interferir con la capacidad de gdb para ver o acceder a las variables.-j:
clickhouse-server, clickhouse-client y otros binarios similares son enlaces simbólicos en el directorio programs/ que apuntan al ejecutable clickhouse una vez finalizada la compilación.:::tip
CMake ofrece formas abreviadas para los comandos anteriores:Ejecutar el ejecutable de ClickHouse
ClickHouse/<build_dir>/programs/:
El servidor de ClickHouse intenta encontrar un archivo de configuración config.xml en el directorio actual.
Como alternativa, puede especificar un archivo de configuración en la línea de comandos mediante -C.
Para conectarse al servidor de ClickHouse con clickhouse-client, abra otra terminal, vaya a ClickHouse/build/programs/ y ejecute ./clickhouse client.
Si recibe el mensaje Connection refused en macOS o FreeBSD, pruebe a especificar la dirección de host 127.0.0.1:
Opciones avanzadas
Compilación mínima
Ejecutar el ejecutable de ClickHouse
clickhouse-client, clickhouse-server y otros son enlaces simbólicos al binario clickhouse compartido.
También puedes ejecutar tu binario personalizado de ClickHouse con el archivo de configuración del paquete de ClickHouse instalado en tu sistema:
Compilar en cualquier sistema Linux
Compilación en Docker
clickhouse/binary-builder con todas las dependencias necesarias
y ejecuta dentro de ella el script de compilación: ./ci/jobs/build_clickhouse.py
La salida de la compilación se colocará en ./ci/tmp/.
Funciona tanto en arquitecturas AMD como ARM y no requiere dependencias adicionales aparte de Python con el módulo requests disponible y Docker.