このビルドガイドは、ClickHouse 本体を変更するコントリビューター向けです。ClickHouse のソースコードを変更しない場合は、クイックスタートで説明しているとおり、ビルド済みの ClickHouse をインストールできます。
- x86_64
- AArch64
- PowerPC 64 LE (実験的)
- s390/x (実験的)
- RISC-V 64 (実験的)
前提
前提条件をインストールする
Clang コンパイラをインストールする
Rust コンパイラをインストールする (任意)
Rust は ClickHouse のオプションの依存関係です。
Rust がインストールされていない場合、ClickHouse の一部機能はコンパイルに含まれません。
rustup をインストールしてください。
C++ の依存関係と同様に、ClickHouse では vendoring を使用して、インストールされる内容を厳密に管理し、サードパーティサービス (crates.io registry など) への依存を避けています。
リリースモードでは、通常は比較的新しい rustup ツールチェーンであれば、どのバージョンでもこれらの依存関係で動作するはずです。ただし、サニタイザを有効にする予定がある場合は、CI で使われているものと完全に同じ std に対応するバージョンを使用する必要があります (そのために crate を vendoring しています) :
ClickHouse をビルドする
ClickHouse 内に build という別のディレクトリを作成することを推奨します。
build_release、build_debug など) を用意できます。
任意: 複数バージョンのコンパイラがインストールされている場合は、使用するコンパイラを明示的に指定することもできます。
-O) が低いため、デバッグしやすくなります。
また、LOGICAL_ERROR 型の内部例外は穏当に失敗せず、即座にクラッシュします。
gdb などのデバッガを使用する場合は、上記のコマンドに
-D DEBUG_O_LEVEL="0" を追加して、すべてのコンパイラ最適化を無効にしてください。これにより、変数の表示やアクセスに対する gdb の動作を妨げる要因を取り除けます。ninja を実行します。
-j パラメーターを使うと、ビルドを並列実行するジョブ数を制御できます。
clickhouse-server、clickhouse-client、および同様のバイナリは、ビルド完了後、programs/ ディレクトリ内で clickhouse 実行可能ファイルを指すシンボリックリンクになります。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 を指定してみてください。
詳細オプション
最小構成でのビルド
ClickHouse 実行可能ファイルの実行
clickhouse-client、clickhouse-server などは、共通の clickhouse バイナリへのシンボリックリンクであることに注意してください。
また、システムにインストールされている ClickHouse パッケージの設定ファイルを使用して、独自にビルドした ClickHouse バイナリを実行することもできます。
任意の Linux でのビルド
Docker でのビルド
clickhouse/binary-builder を取得し、
その中でビルドスクリプト ./ci/jobs/build_clickhouse.py を実行します。
ビルドの出力は ./ci/tmp/ に配置されます。
これは AMD と ARM の両方のアーキテクチャで動作し、追加で必要なのは、requests モジュールが利用可能な Python と Docker だけです。