Catapultビルド

必要なパッケージをインストール

sudo apt -y install git gcc g++ curl libssl-dev libgtest-dev ninja-build pkg-config python3-pip
pip install pyyaml

cmakeインストール

cmakeがaptが提供するものより新しいバージョンを要求してくるので、ソールからビルドします。
記事投稿時点では最新が3.29.2でした。最新版は CMakeのリリースページ で確認出来ます。

sudo apt -y install build-essential checkinstall zlib1g-dev
wget https://github.com/Kitware/CMake/releases/download/v3.29.2/cmake-3.29.2.tar.gz
tar -zxvf cmake-3.29.2.tar.gz
cd cmake-3.29.2
sudo ./bootstrap
sudo make
sudo make install
hash -r
cmake --version

catapult-client クローン

ビルド場所はどこでも良いと思います。とりあえず今回は /opt でビルドします。

cd /opt
git clone https://github.com/symbol/symbol.git
cd symbol/client/catapult

依存関係をダウンロード&ビルド

PYTHONPATH="../../jenkins/catapult/" python3 "../../jenkins/catapult/installDepsLocal.py" \
	--target "./_deps" \
	--versions "../../jenkins/catapult/versions.properties" \
	--download \
	--build

ビルド中にエラー出たら解消して、再実行してください。再実行時は--downloadオプション不要です。

catapult をビルド

テスト無効にしてビルドします。ちなみに、-DENABLE_TESTS=OFF を削除すればテストしてビルドします。

mkdir _build && cd _build
BOOST_ROOT="$(realpath ../_deps/boost)" cmake .. \
	-DENABLE_TESTS=OFF \
	-DCMAKE_BUILD_TYPE=RelWithDebInfo \
	-DCMAKE_PREFIX_PATH="$(realpath ../_deps/facebook);$(realpath ../_deps/google);$(realpath ../_deps/mongodb);$(realpath ../_deps/zeromq)" \
	-GNinja

OpenSSL でエラー

バージョンが低いとこのタイミングでエラーが出る事があります。

CMake Error at /usr/local/share/cmake-3.29/Modules/FindPackageHandleStandardArgs.cmake:230 (message):
  Could NOT find OpenSSL, try to set the path to OpenSSL root folder in the
  system variable OPENSSL_ROOT_DIR: Found unsuitable version "3.0.2", but
  required is exact version "3.2.1" (found
  /usr/lib/x86_64-linux-gnu/libcrypto.so, )
Call Stack (most recent call first):
  /usr/local/share/cmake-3.29/Modules/FindPackageHandleStandardArgs.cmake:598 (_FPHSA_FAILURE_MESSAGE)
  /usr/local/share/cmake-3.29/Modules/FindOpenSSL.cmake:686 (find_package_handle_standard_args)
  CMakeLists.txt:63 (find_package)

OPENSSL_ROOT_DIR にパスが設定されていないので OS の openssl を参照しているのが原因なので、OPENSSL_ROOT_DIR に今回ビルドした openssl のパスを指定する。また、キャッシュが残ってるので _build ディレクトリ内を全て削除する。

export OPENSSL_ROOT_DIR=/opt/symbol/client/catapult/_deps/openssl
rm -rf *

catapult 動作確認

パスを通す。

vi ~/.bashrc

以下を末行に追加。

export LD_LIBRARY_PATH=/opt/symbol/client/catapult/_deps/facebook/lib:/opt/symbol/client/catapult/_deps/boost/lib:/opt/symbol/client/catapult/_build/lib

~/.bashrc を再読込。

source ~/.bashrc

下記コマンドでツールが動くことを確認。

./bin/catapult.tools.address --help

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です