⛓️

SymbolをUbuntu24でビルド

2025/01/05に公開

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

bash
sudo apt update
sudo apt upgrade -y
sudo apt -y install git gcc g++ curl libssl-dev libgtest-dev ninja-build pkg-config cmake

Symbol のソースをクローン

現在公開されているバージョンのブランチをクローンします。保存場所はホームディレクトリを想定しています。

bash
git clone https://github.com/symbol/symbol.git -b client/catapult/v1.0.3.7

依存パッケージのビルド

Symbol サーバーをビルドするのに必要な依存パッケージをビルドするため、~/symbol/client/catapultディレクトリに入ります。

bash
cd ~/symbol/client/catapult

以下のコマンドで依存パッケージをビルドします。ビルド中にエラーが出たら解消して、再実行してください。再実行時は--downloadオプションは不要です。

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

Symbol サーバーをビルド

ビルド用のディレクトリbuildを作成して中に入ります。

bash
mkdir -p build && cd build

cmake を実行します。時間がかかるのでテストを無効にしてビルドします。ちなみに、-DENABLE_TESTS=OFFを削除すればテストもビルドします。

bash
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);$(realpath ../deps/openssl)" \
  -GNinja

ビルドを開始します。

bash
ninja publish && ninja

インストール

~/symbol/client/catapultに移動して、インストール用のスクリプトを作成します。

bash
cd ~/symbol/client/catapult
vi symbol_install.sh
symbol_install.sh
#!/bin/bash

set -e

rm -rf /usr/local/catapult
mkdir -p /usr/local/catapult/bin
mkdir -p /usr/local/catapult/lib
mkdir -p /usr/local/catapult/deps

# bin
cp build/bin/catapult* /usr/local/catapult/bin

# lib
cp build/bin/lib* /usr/local/catapult/lib

# dependence lib
cp -r deps/boost/lib/*.so* /usr/local/catapult/deps
cp -r deps/facebook/lib/*.so* /usr/local/catapult/deps
cp -r deps/mongodb/lib/*.so* /usr/local/catapult/deps
cp -r deps/openssl/*.so* /usr/local/catapult/deps
cp -r deps/openssl/engines-3 /usr/local/catapult/deps
cp -r deps/openssl/ossl-modules /usr/local/catapult/deps
cp -r deps/zeromq/lib/*.so* /usr/local/catapult/deps

実行権限を付与して、シェルを実行します。

bash
chmod +x symbol_install.sh
sudo ./symbol_install.sh

パスを通す

ライブラリへのパスを通します。

bash
vi ~/.bashrc

以下を末行に追加します。

~/.bashrc
export LD_LIBRARY_PATH=/usr/local/catapult/deps
export PATH="/usr/local/catapult/bin:$PATH"

.bashrcを再読み込みします。

bash
source ~/.bashrc

実行確認

以下のコマンドを実行してヘルプが表示されれば、ビルドは成功です。

bash
catapult.tools.address --help

Discussion