ROS 2 Usage

This page describes how to install and use ROS 2 on Fedora and related platforms.

Official Fedora Support with Lyrical

Open Robotics will provide official ROS 2 RPM packages for Fedora starting with Lyrical Luth, the 2026 LTS release. These will be the production-supported, CVE-tracked packages for running ROS 2 on Fedora.

Until the official Lyrical packages ship, the development-only Copr repositories described below provide a way to experiment with ROS 2 on Fedora today. The hellaenergy/ros2 Copr now provides ROS 2 Lyrical builds and is the recommended starting point. The hellaenergy/ros2-jazzy Copr provides ROS 2 Jazzy maintenance builds for existing Jazzy workflows.

Supported Platforms

Both Copr repositories build across the following platforms:

Distribution x86_64 aarch64

Fedora 44

Yes

Yes

Fedora rawhide

Yes

Yes

CentOS Stream 10

Yes

Yes

ROS 2 Lyrical Installation

The hellaenergy/ros2 Copr is a development-only package set, not the official ROS 2 packages for Fedora. For production deployments, use the official Open Robotics Lyrical packages when they ship. Spec files for this Copr are hosted on GitHub.
sudo dnf copr enable hellaenergy/ros2
sudo dnf install ros-lyrical-ros-base

This installs the minimal headless set: rclcpp, rclpy, the common message packages, Fast DDS, and tf2_ros. Packages install under /opt/ros/lyrical.

Set up the environment in each shell:

source /opt/ros/lyrical/setup.bash

Verify the installation by running:

source /opt/ros/lyrical/setup.bash
bash <(curl -fsSL https://raw.githubusercontent.com/nickschuetz/ros2-rpm/main/scripts/smoke-test.sh) lyrical

ROS 2 Jazzy Installation

The hellaenergy/ros2-jazzy Copr provides ROS 2 Jazzy maintenance builds for workflows that have not yet moved to Lyrical.

The hellaenergy/ros2-jazzy Copr is a development-only package set, not the official ROS 2 packages for Fedora. The current flagship is ROS 2 Lyrical at hellaenergy/ros2. For production deployments, use the official Open Robotics packages. Spec files for this Copr are hosted on GitHub.
sudo dnf copr enable hellaenergy/ros2-jazzy
sudo dnf install ros-jazzy-ros-base

For developer tooling (rqt, ros2cli, Cyclone DDS, demo nodes, gazebo_msgs):

sudo dnf install ros-jazzy-ros-desktop
The rviz2 3D visualizer is not available in this Copr due to upstream build issues with Ogre and Assimp on Fedora. The rqt tools provide non-3D debugging (graph, topic echo, console, plot). See the rviz2 deferral documentation for details and workarounds.

Verify the installation by running:

source /opt/ros/jazzy/setup.bash
bash <(curl -fsSL https://raw.githubusercontent.com/nickschuetz/ros2-rpm/main/scripts/smoke-test.sh) jazzy

CentOS Stream 10 Installation

Both Copr repositories also support CentOS Stream 10 with EPEL 10. Install using the same commands as Fedora, selecting the repository for the ROS 2 release you want.

For ROS 2 Lyrical:

sudo dnf copr enable hellaenergy/ros2
sudo dnf install ros-lyrical-ros-base

For ROS 2 Jazzy:

sudo dnf copr enable hellaenergy/ros2-jazzy
sudo dnf install ros-jazzy-ros-base
The Qt5-based developer tools (rqt) in the Jazzy desktop set are not available on CentOS Stream 10 due to missing build dependencies. CLI tools and headless workflows function normally.

CentOS Stream 9 Installation

ROS 2 packages work on CentOS Stream 9 through EPEL9 and the official ROS 2 RHEL packages from packages.ros.org. This path uses the upstream Open Robotics RPMs, not the Copr.

See this container image for build instructions: https://gitlab.com/fedora/sigs/robotics/images/ros2-cs9

The upstream Jazzy RHEL9 documentation is available at https://docs.ros.org/en/jazzy/Installation/RHEL-Install-RPMs.html.
The smoke test script only works with Fedora images for now.