Linuxでs390x(zLinux)用にビルド
ClickHouseはs390xの実験的サポートを提供しています。
s390x用にClickHouseをビルドする
s390xには2つのOpenSSL関連のビルドオプションがあります:
- デフォルトでは、OpenSSLはs390xで共有ライブラリとしてビルドされます。これは、すべての他のプラットフォームでOpenSSLが静的ライブラリとしてビルドされるのとは異なります。
- OpenSSLを静的ライブラリとしてビルドするには、必ず
-DENABLE_OPENSSL_DYNAMIC=0
をCMakeに渡してください。
これらの手順は、ホストマシンがx86_64であり、ビルド指示に基づいてネイティブにビルドするために必要なすべてのツールが揃っていると仮定しています。また、ホストがUbuntu 22.04であると仮定していますが、以下の手順はUbuntu 20.04でも動作するはずです。
ネイティブビルドに使用するツールをインストールすることに加えて、以下の追加パッケージをインストールする必要があります:
rustコードをクロスコンパイルしたい場合は、s390x用のrustクロスコンパイルターゲットをインストールしてください:
s390xビルドではmoldリンカを使用します。これをhttps://github.com/rui314/mold/releases/download/v2.0.0/mold-2.0.0-x86_64-linux.tar.gzからダウンロードし、あなたの`$PATH`に置いてください。
s390x用にビルドするには:
実行する
ビルドが完了したら、バイナリを以下のように実行できます:
デバッグ
LLDBをインストールします:
s390x実行ファイルをデバッグするには、QEMUを使用してクリックハウスをデバッグモードで実行します:
別のシェルでLLDBを実行し、アタッチします。<Clickhouse Parent Directory>
と <build directory>
をあなたの環境に対応する値に置き換えてください。
Visual Studio Code統合
- CodeLLDB拡張機能は、視覚的デバッグに必要です。
- Command Variable拡張機能は、CMake Variantsを使用する場合に動的な起動を助けることができます。
- バックエンドがLLVMインストールに設定されていることを確認してください。例えば、
"lldb.library": "/usr/lib/x86_64-linux-gnu/liblldb-15.so"
。 - 起動前にクリックハウス実行可能ファイルをデバッグモードで実行することを確認してください。(自動化するために
preLaunchTask
を作成することも可能です)
例の設定
cmake-variants.yaml
launch.json
settings.json
これにより、異なるビルドがbuild
フォルダーの異なるサブフォルダーに配置されます。
run-debug.sh
tasks.json
コンパイルされた実行可能ファイルをtmp
フォルダーの下でserver
モードで実行するタスクを定義し、programs/server/config.xml
からの構成を使用します。