Skip to content

Instantly share code, notes, and snippets.

@onkoe
Last active March 27, 2025 09:55
Show Gist options
  • Save onkoe/80cd15d295efabdbf8b4fe537af5bd78 to your computer and use it in GitHub Desktop.
Save onkoe/80cd15d295efabdbf8b4fe537af5bd78 to your computer and use it in GitHub Desktop.
a working configuration for ROS 2 on Fedora 41

ROS 2 Jazzy on Fedora 41

# update your system
sudo dnf update -y && sudo reboot

# add this Fedora COPR repo (copr.fedorainfracloud.org/coprs/tavie/ros2)
sudo dnf copr enable tavie/ros2

# install some packages
sudo dnf install -y ros2-jazzy-ros2cli ros2-jazzy-ros2cli-common-extensions ros2-jazzy-ros2cli_common_extensions-devel ros2-jazzy-ros2cli-test-interfaces ros2-jazzy-launch_xml ros2-jazzy-launch_yaml ros2-jazzy-launch

# remove the system colcon, if present!
# add it into the virtual environment through something like `uv`.
sudo dnf remove -y python3-colcon-core
uv add colcon-common-extensions --dev 

# source ros2 commands on fish
bass source /usr/lib64/ros2-jazzy/setup.bash
@PennRobotics
Copy link

PennRobotics commented Mar 27, 2025

  • If this doesn't work for you, replace ros2-jazzy-ros2cli-common-extensions with ros2-jazzy-ros2cli_common_extensions (mixed underscores and dashes) and remove ros2-jazzy-ros2cli-test-interfaces (although it is possible this is now called ros2-jazzy-example_interfaces --- which is a dependency for the node publish/subscribe demo (ros2-jazzy-demo_nodes_cpp and _py) )
  • If you already have pip configured and have no strong reason for uv, colcon-common-extensions can be installed via pip
  • There are source scripts for a variety of shells in /usr/lib64/ros2-jazzy

Thanks for this guide! It works nicely, which is more than I can say about building rolling from source.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment