Este guia de compilação é destinado a colaboradores que modificam o próprio ClickHouse.Se você não estiver alterando o código-fonte do ClickHouse, poderá instalar o ClickHouse pré-compilado conforme descrito no Quick Start.
- x86_64
- AArch64
- PowerPC 64 LE (experimental)
- s390/x (experimental)
- RISC-V 64 (experimental)
Premissas
Instale os pré-requisitos
Instale o compilador Clang
Instale o compilador Rust (opcional)
Rust é uma dependência opcional do ClickHouse.
Se o Rust não estiver instalado, alguns recursos do ClickHouse serão omitidos da compilação.
rustup.
Assim como acontece com as dependências de C++, o ClickHouse usa vendoring para controlar exatamente o que é instalado e evitar depender de serviços de terceiros (como o registry crates.io).
Embora, no modo release, qualquer versão moderna da toolchain do rustup deva funcionar com essas dependências, se você pretende habilitar sanitizers, deverá usar uma versão que corresponda exatamente ao mesmo std usado na CI (para a qual incluímos os crates via vendoring):
Compilação do ClickHouse
build separado dentro de ClickHouse, que contenha todos os artefatos da compilação:
build_release, build_debug etc.) para diferentes tipos de compilação.
Opcional: se você tiver várias versões de compilador instaladas, poderá especificar exatamente qual compilador usar.
-O) mais baixo, o que proporciona uma experiência de depuração melhor.
Além disso, exceções internas do tipo LOGICAL_ERROR fazem o processo encerrar imediatamente, em vez de falhar de forma controlada.
Se quiser usar um depurador como o gdb, adicione
-D DEBUG_O_LEVEL="0" ao comando acima para remover todas as otimizações do compilador, o que pode interferir na capacidade do gdb de visualizar/acessar variáveis.ninja para compilar:
ninja sem parâmetros:
-j:
clickhouse-server, clickhouse-client e binários semelhantes são links simbólicos no diretório programs/ que apontam para o executável clickhouse após a conclusão da compilação.Executando o executável do ClickHouse
ClickHouse/<build_dir>/programs/:
O servidor ClickHouse tenta localizar um arquivo de configuração config.xml no diretório atual.
Como alternativa, você pode especificar um arquivo de configuração na linha de comando com -C.
Para se conectar ao servidor ClickHouse com clickhouse-client, abra outro terminal, vá até ClickHouse/build/programs/ e execute ./clickhouse client.
Se aparecer a mensagem Connection refused no macOS ou FreeBSD, tente especificar o endereço de host 127.0.0.1:
Opções avançadas
Compilação mínima
Executando o executável do ClickHouse
clickhouse-client, clickhouse-server e outros são links simbólicos para o binário compartilhado clickhouse.
Você também pode executar sua versão personalizada do binário do ClickHouse com o arquivo de config do pacote ClickHouse instalado no seu sistema:
Compilação em qualquer distribuição Linux
Compilação com Docker
clickhouse/binary-builder com todas as dependências necessárias
e executa o script de compilação dentro dela: ./ci/jobs/build_clickhouse.py
A saída da compilação será gerada em ./ci/tmp/.
Funciona em arquiteturas AMD e ARM e não requer dependências adicionais além de Python com o módulo requests disponível e Docker.