이 빌드 가이드는 ClickHouse 자체를 수정하는 기여자를 위한 안내서입니다.ClickHouse 소스 코드를 변경하지 않는다면 Quick Start에 설명된 대로 사전 구축된 ClickHouse를 설치할 수 있습니다.
- x86_64
- AArch64
- PowerPC 64 LE (실험적)
- s390/x (실험적)
- RISC-V 64 (실험적)
전제 조건
필수 구성 요소 설치
Clang 컴파일러 설치
Rust 컴파일러 설치(선택 사항)
Rust는 ClickHouse의 선택적 의존성입니다.
Rust가 설치되어 있지 않으면 ClickHouse의 일부 기능은 컴파일에 포함되지 않습니다.
rustup을 설치합니다.
C++ 의존성과 마찬가지로 ClickHouse는 정확히 어떤 항목이 설치되는지 제어하고, crates.io registry와 같은 타사 서비스에 의존하지 않기 위해 벤더링을 사용합니다.
릴리스 모드에서는 일반적으로 최신 rustup 툴체인 버전이면 이러한 의존성과 함께 동작하지만, 새니타이저를 활성화할 계획이라면 CI에서 사용하는 것과 정확히 동일한 std에 맞는 버전을 사용해야 합니다(이 경우 크레이트를 벤더링함):
ClickHouse 빌드
build를 ClickHouse 내부에 생성하는 것을 권장합니다:
build_release, build_debug 등)를 둘 수 있습니다.
선택 사항: 여러 컴파일러 버전이 설치되어 있다면 사용할 컴파일러를 정확히 지정할 수 있습니다.
-O)이 더 낮아 디버깅이 더 수월합니다.
또한 LOGICAL_ERROR 유형의 내부 예외는 정상적으로 처리되지 않고 즉시 크래시가 발생합니다.
gdb와 같은 디버거를 사용하려면 위 명령에 -D DEBUG_O_LEVEL="0"를 추가해 모든 컴파일러 최적화를 비활성화하십시오. 이러한 최적화는 gdb가 변수를 확인하거나 접근하는 데 방해가 될 수 있습니다.ninja를 실행하십시오:
-j를 사용해 병렬 빌드 작업 수를 조절할 수 있습니다:
clickhouse-server, clickhouse-client 및 이와 유사한 바이너리는 빌드 완료 후 clickhouse 실행 파일을 가리키는 programs/ 디렉터리의 심볼릭 링크입니다.:::tip
CMake는 위 명령어에 대한 단축 구문을 제공합니다.ClickHouse 실행 파일 실행하기
ClickHouse/<build_dir>/programs/에서 찾을 수 있습니다:
ClickHouse 서버는 현재 디렉터리에서 설정 파일 config.xml을 찾습니다.
또는 명령줄에서 -C를 사용해 설정 파일을 지정할 수 있습니다.
clickhouse-client로 ClickHouse 서버에 연결하려면 다른 터미널을 열고 ClickHouse/build/programs/로 이동한 다음 ./clickhouse client를 실행하세요.
macOS 또는 FreeBSD에서 Connection refused 메시지가 표시되면 호스트 주소 127.0.0.1을 지정해 보세요:
고급 옵션
최소 빌드
ClickHouse 실행 파일 실행하기
clickhouse-client, clickhouse-server 등은 공용 clickhouse 실행 파일에 대한 심볼릭 링크라는 점에 유의하십시오.
시스템에 설치된 ClickHouse 패키지의 구성 파일을 사용해 사용자 지정으로 빌드한 ClickHouse 실행 파일을 실행할 수도 있습니다:
모든 Linux에서 빌드하기
Docker에서 빌드하기
clickhouse/binary-builder를 pull한 다음,
그 안에서 빌드 스크립트 ./ci/jobs/build_clickhouse.py를 실행합니다.
빌드 출력은 ./ci/tmp/에 생성됩니다.
이 방식은 AMD 및 ARM 아키텍처 모두에서 작동하며, requests 모듈을 사용할 수 있는 Python과 Docker 외에는 추가 종속성이 필요하지 않습니다.