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. |
Want to help? Learn how to contribute to Fedora Docs ›