メインコンテンツまでスキップ
メインコンテンツまでスキップ

Linuxでの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を使用します。

ビルドの際に既にコンパイルされたオブジェクトファイルを再利用できるように、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_releasebuild_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-clientclickhouse-serverなどは、一般的に共有されているclickhouseバイナリへのシンボリックリンクであることに注意してください。

システムにインストールされたClickHouseパッケージからの設定ファイルでカスタムビルドのClickHouseバイナリを実行することもできます:

任意のLinuxでのビルド

OpenSUSE Tumbleweedで前提条件をインストールします:

Fedora Rawhideでの前提条件をインストールします:

Dockerでのビルド

CIでのビルドにはclickhouse/binary-builderというdockerイメージを使用します。 このイメージにはバイナリおよびパッケージをビルドするために必要なすべてが含まれています。 画像の使用を容易にするために、docker/packager/packagerスクリプトがあります: