Skip to main content
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.
ClickHouse se puede compilar en las siguientes plataformas:
  • x86_64
  • AArch64
  • PowerPC 64 LE (experimental)
  • s390/x (experimental)
  • RISC-V 64 (experimental)

Suposiciones

El siguiente tutorial se basa en Ubuntu Linux, pero también debería funcionar en cualquier otra distribución de Linux con los ajustes adecuados. La versión mínima recomendada de Ubuntu para desarrollo es la 24.04 LTS. En este tutorial se da por hecho que tienes una copia local del repositorio de ClickHouse con todos los submódulos descargados.

Instalar los requisitos previos

Primero, consulte la documentación general sobre requisitos previos. ClickHouse usa CMake y Ninja para la compilación. Opcionalmente, puede instalar ccache para que la compilación reutilice archivos objeto ya compilados.

Instalar el compilador Clang

Para instalar Clang en Ubuntu/Debian, utiliza el script de instalación automática de LLVM disponible aquí.
Para otras distribuciones de Linux, comprueba si puedes instalar alguno de los paquetes precompilados de LLVM. Desde febrero de 2026, se requiere Clang 21 o una versión superior. GCC y otros compiladores no son compatibles.

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.
Primero, sigue los pasos de la documentación oficial de Rust para instalar 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

Recomendamos crear un directorio build separado dentro de ClickHouse que contenga todos los artefactos de compilación:
Puede tener varios directorios diferentes (p. ej., 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.
Para fines de desarrollo, se recomiendan las compilaciones de depuración. En comparación con las compilaciones de lanzamiento, tienen un nivel más bajo de optimización del compilador (-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.
Ejecute ninja para compilar:
Si desea compilar todos los binarios (utilidades y pruebas), ejecute ninja sin parámetros:
Puede controlar la cantidad de procesos de compilación en paralelo con el parámetro -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

Una vez finalizada correctamente la compilación, encontrará el ejecutable en 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

Si no necesitas la funcionalidad que proporcionan bibliotecas de terceros, puedes acelerar aún más la compilación:
En caso de problemas, tendrás que arreglártelas por tu cuenta… Rust requiere una conexión a internet. Para desactivar la compatibilidad con Rust:

Ejecutar el ejecutable de ClickHouse

Puede sustituir el binario de producción de ClickHouse instalado en su sistema por el binario compilado de ClickHouse. Para ello, instale ClickHouse en su equipo siguiendo las instrucciones del sitio web oficial. A continuación, ejecute:
Ten en cuenta que 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

Instale los requisitos previos en OpenSUSE Tumbleweed:
Instala los requisitos previos en Fedora Rawhide:

Compilación en Docker

Puedes ejecutar cualquier compilación en local en un entorno similar al de CI con:
donde BUILD_JOB_NAME es el nombre del job, tal como aparece en el informe de CI; p. ej., “Build (arm_release)”, “Build (amd_debug)” Este comando descarga la Docker image adecuada 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.
Última modificación el 12 de junio de 2026