Skip to main content
このビルドガイドは、ClickHouse 本体を変更するコントリビューター向けです。ClickHouse のソースコードを変更しない場合は、クイックスタートで説明しているとおり、ビルド済みの ClickHouse をインストールできます。
ClickHouse は以下のプラットフォームでビルドできます。
  • x86_64
  • AArch64
  • PowerPC 64 LE (実験的)
  • s390/x (実験的)
  • RISC-V 64 (実験的)

前提

以下のチュートリアルは Ubuntu Linux を前提としていますが、適宜変更を加えれば、他の Linux ディストリビューションでも動作します。 開発用途として推奨される Ubuntu の最小バージョンは 24.04 LTS です。 このチュートリアルでは、ClickHouse リポジトリとすべてのサブモジュールをローカルにチェックアウト済みであることを前提としています。

前提条件をインストールする

まず、一般的な前提条件のドキュメントを参照してください。 ClickHouse のビルドには CMake と Ninja を使用します。 必要に応じて、すでにコンパイル済みの object ファイルをビルドで再利用できるよう、ccache をインストールできます。

Clang コンパイラをインストールする

Ubuntu/Debian に Clang をインストールするには、こちら にある LLVM の自動インストールスクリプトを使用してください。
その他の Linux ディストリビューションについては、LLVM のビルド済みパッケージをインストールできるか確認してください。 2026 年 2 月時点では、Clang 21 以上が必要です。 GCC やその他のコンパイラはサポートされていません。

Rust コンパイラをインストールする (任意)

Rust は ClickHouse のオプションの依存関係です。 Rust がインストールされていない場合、ClickHouse の一部機能はコンパイルに含まれません。
まず、公式の Rust ドキュメント の手順に従って rustup をインストールしてください。 C++ の依存関係と同様に、ClickHouse では vendoring を使用して、インストールされる内容を厳密に管理し、サードパーティサービス (crates.io registry など) への依存を避けています。 リリースモードでは、通常は比較的新しい rustup ツールチェーンであれば、どのバージョンでもこれらの依存関係で動作するはずです。ただし、サニタイザを有効にする予定がある場合は、CI で使われているものと完全に同じ std に対応するバージョンを使用する必要があります (そのために crate を vendoring しています) :

ClickHouse をビルドする

ビルド成果物をすべて格納するため、ClickHouse 内に build という別のディレクトリを作成することを推奨します。
ビルドタイプごとに、別々のディレクトリ (例: build_releasebuild_debug など) を用意できます。 任意: 複数バージョンのコンパイラがインストールされている場合は、使用するコンパイラを明示的に指定することもできます。
開発用途では、デバッグビルドを推奨します。 リリースビルドと比べると、コンパイラの最適化レベル (-O) が低いため、デバッグしやすくなります。 また、LOGICAL_ERROR 型の内部例外は穏当に失敗せず、即座にクラッシュします。
gdb などのデバッガを使用する場合は、上記のコマンドに -D DEBUG_O_LEVEL="0" を追加して、すべてのコンパイラ最適化を無効にしてください。これにより、変数の表示やアクセスに対する gdb の動作を妨げる要因を取り除けます。
ビルドするには、ninja を実行します:
すべてのバイナリ (ユーティリティとテストを含む) をビルドするには、パラメータを指定せずに ninja を実行します。
-j パラメーターを使うと、ビルドを並列実行するジョブ数を制御できます。
clickhouse-serverclickhouse-client、および同様のバイナリは、ビルド完了後、programs/ ディレクトリ内で clickhouse 実行可能ファイルを指すシンボリックリンクになります。
CMake には、上記コマンドのショートカットがあります。

ClickHouse 実行可能ファイルの実行

ビルドが正常に完了すると、実行可能ファイルは ClickHouse/<build_dir>/programs/ にあります。 ClickHouse server は、現在のディレクトリで設定ファイル config.xml を探します。 代わりに、コマンドラインから -C を使って設定ファイルを指定することもできます。 clickhouse-client で ClickHouse server に接続するには、別のターミナルを開き、ClickHouse/build/programs/ に移動して ./clickhouse client を実行します。 macOS または FreeBSD で Connection refused メッセージが表示される場合は、ホストアドレス 127.0.0.1 を指定してみてください。

詳細オプション

最小構成でのビルド

サードパーティ製ライブラリが提供する機能が不要な場合は、ビルドをさらに高速化できます。
問題が発生した場合は、自己責任で対処してください… Rust にはインターネット接続が必要です。Rust サポートを無効にするには:

ClickHouse 実行可能ファイルの実行

システムにインストールされている本番環境用のClickHouseバイナリを、コンパイル済みのClickHouseバイナリに置き換えることができます。 そのためには、公式Webサイトの手順に従って、お使いのマシンにClickHouseをインストールしてください。 次に、以下を実行します。
clickhouse-clientclickhouse-server などは、共通の clickhouse バイナリへのシンボリックリンクであることに注意してください。 また、システムにインストールされている ClickHouse パッケージの設定ファイルを使用して、独自にビルドした ClickHouse バイナリを実行することもできます。

任意の Linux でのビルド

OpenSUSE Tumbleweed で必要な前提条件をインストールします:
Fedora Rawhide で必要な前提条件をインストールします:

Docker でのビルド

CI に近い環境で任意のビルドをローカル実行するには、次を使用します。
ここで BUILD_JOB_NAME は、CI レポートに表示されるジョブ名です。たとえば、“Build (arm_release)”、“Build (amd_debug)” などです。 このコマンドは、必要な依存関係をすべて含む適切な Dockerイメージ clickhouse/binary-builder を取得し、 その中でビルドスクリプト ./ci/jobs/build_clickhouse.py を実行します。 ビルドの出力は ./ci/tmp/ に配置されます。 これは AMD と ARM の両方のアーキテクチャで動作し、追加で必要なのは、requests モジュールが利用可能な Python と Docker だけです。
最終更新日 2026年7月23日