StarRocks の開発環境をセットアップする
StarRocks のコントリビューターになりたいけれど、開発環境に悩んでいる方のために、ここにチュートリアルを書きます。
完璧な開発ツールチェーンとは何でしょうか?
- FE と BE をワンクリックでコンパイルできること。
- Clion と IDEA でコードジャンプをサポートすること。
- IDE 内のすべての変数が赤線なしで正常に解析できること。
- Clion がその解析機能を正常に有効にできること。
- FE と BE のデバッグをサポートすること。
準備
私は MacBook (M1) をローカルでのコーディングに使用し、リモートサーバーで StarRocks のコンパイルとテストを行います。(リモートサーバーは Ubuntu 22 を使用し、少なくとも 16GB RAM が必要です)。
全体のアイデアは、MacBook でコードを書き、それを IDE を通じてサーバーに自動的に同期し、サーバーを使って StarRocks をコンパイルおよび開発することです。
MacBook のセットアップ
Thrift 0.13
公式の brew リポジトリには Thrift の 0.13 バージョンがありません。私たちのコミッターの一人が自分のリポジトリにバージョンを作成してインストールできるようにしました。
brew install alberttwong/thrift/thrift@0.13
以下のコマンドで Thrift が正常にインストールされたか確認できます。
$ thrift -version
Thrift version 0.13.0
Protobuf
最新バージョン v3 を直接使用してください。StarRocks の Protobuf プロトコルの v2 バージョンと互換性があります。
brew install protobuf
Maven
brew install maven
OpenJDK 1.8 または 11
brew install openjdk@11
Python3
MacOS には標準で付属しているため、インストールは不要です。
システム環境のセットアップ
export JAVA_HOME=xxxxx
export PYTHON=/usr/bin/python3
Ubuntu22 サーバーのセットアップ
StarRocks コードのクローン
git clone https://github.com/StarRocks/starrocks.git
コンパイルに必要なツールのインストール
sudo apt update
sudo apt install gcc g++ maven openjdk-11-jdk python3 python-is-python3 unzip cmake bzip2 ccache byacc ccache flex automake libtool bison libiberty-dev build-essential ninja-build curl
JAVA_HOME 環境のセットアップ
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64