Installing ROS on fedora 29
Hi,
I am trying to install ros (full installation) on Fedora 29 from source following this link.
First comment is that
dnf install python-rosdep
is outdated by
dnf install python3-rosdep
Then, I am having dependencies that are not available for Fedora 29. More precisely, when I run the command:
rosdep install --from-paths src --ignore-src --rosdistro melodic -y
I obtain the following message:
ERROR: the following packages/stacks could not have their rosdep keys resolved
to system dependencies:
gazebo_dev: No definition of [libgazebo9-dev] for OS [fedora]
rqt_bag_plugins: No definition of [python-imaging] for OS version [29]
rosbag: No definition of [python-imaging] for OS version [29]
Will that make my installtion fail? or only for the rosbag and gazebo installation. Will ros be usable without those dependencies? Can it be updated on the repositrories in order to have the installation completed?
Thanks in advance
Asked by yyvus on 2018-12-18 04:55:15 UTC
Answers
Hi, yyvus, thanks for pointing out the gap in our documentation related to rosdep. The Fedora packaging community has been pushing for removal of Python 2 packages pretty aggressively, and part of that effort is moving "default" executables like /usr/bin/rosdep to be provided by Python 3 packages instead. I'll update the documentation.
For the missing rosdep keys for Fedora 29, there are a couple of issues. The python-imaging rule never got updated when Fedora 29 shipped. I've opened a pull request to solve the issue: https://github.com/ros/rosdistro/pull/20298.
The gazebo key is more complex. Fedora 29 packages Gazebo 8, while that key calls for Gazebo 9. The ROS releases follow the package versions in Ubuntu, and Fedora's ship cycle and package versions differ in many ways, resulting in de-synchronizations like this. We're talking about using Fedora Modular to solve this issue for Fedora specifically, but the problem could manifest for any non-Ubuntu platform. I can tell you that on my Fedora 29 machine, I was able to install gazebo-devel
and build successfully even though the gazebo_dev
package targets Gazebo 9.
After working around these two issues, you'll encounter two more key issues. gazebo9
suffers from the same problem as libgazebo9-dev
, and the package name for python-opengl
is no longer correct. I opened a pull request to solve that issue, too: https://github.com/ros/rosdistro/pull/20299
So to work around these issues, install the packages for the missing and incorrect keys and run rosdep
again, specifically ignoring the broken rules:
# sudo dnf install gazebo-devel python2-pillow python2-pillow-qt python2-pyopengl
# rosdep install --from-paths src --ignore-src --rosdistro melodic -y --skip-keys "gazebo9 libgazebo9-dev python-imaging python-opengl"
Asked by cottsay on 2019-02-13 13:58:43 UTC
Comments
Thanks for your answer. Due to the difficulties, I decided to move towards a Docker installation based on the ROS image, which works perfectly.
Asked by yyvus on 2019-02-18 03:58:58 UTC
Comments