ClickHouseをLinuxにビルドする方法
事前にビルドされたClickHouseをクイックスタートに従ってインストールできます。
ClickHouseは以下のプラットフォームでビルド可能です:
- x86_64
- AArch64
- PowerPC 64 LE(実験的)
- s390/x(実験的)
- RISC-V 64(実験的)
前提条件
このチュートリアルはUbuntu Linuxに基づいていますが、適切な変更を加えることで他のLinuxディストリビューションでも動作するはずです。 開発に推奨される最小のUbuntuバージョンは24.04 LTSです。
このチュートリアルは、ClickHouseのリポジトリとすべてのサブモジュールがローカルにチェックアウトされていることを前提としています。
必要な前提条件をインストールする
まず、一般的な前提条件のドキュメントを参照してください。
ClickHouseはビルドにCMakeとNinjaを使用します。
オプションで、ccacheをインストールして、すでにコンパイルされたオブジェクトファイルを再利用できるようにすることができます。
Clangコンパイラをインストールする
Ubuntu/DebianにClangをインストールするには、こちらからLLVMの自動インストールスクリプトを使用します。
他のLinuxディストリビューションの場合は、LLVMの事前ビルドパッケージをインストールできるか確認してください。
2025年3月時点では、Clang 19以上が必要です。 GCCや他のコンパイラはサポートされていません。
Rustコンパイラをインストールする(オプション)
RustはClickHouseのオプション依存関係です。 Rustがインストールされていない場合、ClickHouseのいくつかの機能はコンパイルから省略されます。
まず、公式のRustドキュメントに従ってrustup
をインストールします。
C++の依存関係と同様に、ClickHouseはベンダリングを使用して、正確に何がインストールされるかを制御し、サードパーティサービス(crates.io
レジストリなど)への依存を避けます。
リリースモードでは、すべての新しいrustupツールチェーンバージョンがこれらの依存関係と動作するはずですが、サニタイザーを有効にする予定の場合は、CIで使用されているのと同じstd
に一致するバージョンを使用する必要があります(私たちはクレートをベンドしています):
ClickHouseをビルドする
すべてのビルドアーティファクトが含まれるbuild
という別のディレクトリをClickHouse
内に作成することをお勧めします:
異なるビルドタイプ用に、複数の異なるディレクトリ(例: build_release
, build_debug
など)を持つことができます。
オプション: 複数のコンパイラバージョンがインストールされている場合は、使用する正確なコンパイラを指定できます。
開発目的の場合、デバッグビルドを推奨します。
リリースビルドと比較して、コンパイラの最適化レベルが低く(-O
)、デバッグ体験が向上します。
また、LOGICAL_ERROR
タイプの内部例外は正常に失敗するのではなく、即座にクラッシュします。
ビルドを実行するにはninjaを使用します:
すべてのバイナリ(ユーティリティとテスト)をビルドしたい場合は、引数なしでninjaを実行します:
並列ビルドジョブの数を制御するには、-j
パラメータを使用します:
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を指定してみてください:
高度なオプション
最小ビルド
サードパーティライブラリによって提供される機能が不要な場合、さらにビルドを高速化できます:
問題が発生した場合、自己責任でお願いします…
Rustはインターネット接続を必要とします。Rustサポートを無効にするには:
ClickHouse実行可能ファイルの実行
システムにインストールされているClickHouseバイナリーのプロダクションバージョンをコンパイルしたClickHouseバイナリーで置き換えることができます。 そのためには、公式ウェブサイトの指示に従ってマシンにClickHouseをインストールします。 次に、実行:
clickhouse-client
、clickhouse-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アーキテクチャの両方で動作し、Docker以外の追加依存関係は必要ありません。