Linuxでの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を使用します。
ビルドの際に既にコンパイルされたオブジェクトファイルを再利用できるように、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でのビルドにはclickhouse/binary-builder
というdockerイメージを使用します。
このイメージにはバイナリおよびパッケージをビルドするために必要なすべてが含まれています。
画像の使用を容易にするために、docker/packager/packager
スクリプトがあります: