1. 概要
「ROS2 jazzy」は、「RedHat」系の「Linux」にもインストール可能なようです。
「RedHat Linux」は、持ち合わせがないですが、「Fedora」にもインストールできるようなので。
「Fedora 41 Cinnamon」へインストールしてみます。
多くの説明は省略して、コマンドを中心に記述します。
本ページは、下記のサイトを参考にさせていただきました。
「RHEL (source) — ROS 2 Documentation: Jazzy documentation」
「Fedora 38 でplpgsql-lspを動かす 」
2. 準備
「RedHat Linuxn」は、「VirtualBox 7.1.4」上へインストールし、わたしが使うツールの類は、インストールした状態です。
そのあたりは、「Fedora - 41 - 共通事項」をご参照ください。
パッケージも改めてすべて、最新へしておきます。
参考サイトでは、ロケールを「en_US」設定するように書いてありますが、他のプラットフォームでは、特に変えなくても問題なかったので、そのままにしておきます。
「Fedora」では、別途、以下が必要です、
実は、最後の。
colcon build --symlink-install
の途中で。
g++: 致命的エラー: 環境変数 ‘RPM_ARCH’ が定義されていません
てな、エラーが発生します。
なので。
export RPM_ARCH=$(uname -m)
export RPM_PACKAGE_RELEASE=1.0
export RPM_PACKAGE_VERSION=1.0
export RPM_PACKAGE_NAME=plpgsql-lsp
という、おまじないが必要です。
なんなら「~/.bashrc」へ仕込んでおきます。
以下、ずっと、ログインユーザで。
3. 開発ツールインストール
開発用ツールのインストール。
sudo dnf install -y \
cmake \
gcc-c++ \
git \
make \
patch \
python3-colcon-common-extensions \
python3-mypy \
python3-pip \
python3-pydocstyle \
python3-pytest \
python3-pytest-cov \
python3-pytest-mock \
python3-pytest-repeat \
python3-pytest-rerunfailures \
python3-pytest-runner \
python3-rosdep \
python3-setuptools \
python3-vcstool \
wget
python3 -m pip install -U --user \
flake8-blind-except==0.1.1 \
flake8-class-newline \
flake8-deprecated
4. ROS2 ビルド
「ROS2」をビルドします。
mkdir -pv ~/ros2_jazzy/src
cd ~/ros2_jazzy
vcs import --input https://raw.githubusercontent.com/ros2/ros2/jazzy/ros2.repos src
sudo dnf update
sudo rosdep init
rosdep update
rosdep install --from-paths src --ignore-src -y --skip-keys "fastcdr rti-connext-dds-6.0.1 urdfdom_headers"
cd ~/ros2_jazzy/
colcon build --symlink-install
ここが、いつも時間のかかるとことです。
2025年1月4日時点では、364個のモジュールをビルドしてインストールすることになります。
マシンのスペックやプラットフォームによりますが、短くても 45分、長ければ、8時間以上かかります。
途中、一度失敗して再開したので、2回目は1回目にインストールしたものがすぐにインストールされますので、54分であったものがありました。
一方、他のマシンで、5時間46分かかったものもあります。
5. 環境設定
シェルが「bash」の場合、下記で環境設定を行います。
. ~/ros2_jazzy/install/local_setup.bash
これは、環境を使う場合、毎回使うようなので、「~/.bashrc」へ取り込んでおきます。
vi ~/.bashrc
末尾に下記の行を加えます。
. ~/ros2_jazzy/install/local_setup.bash