Package ROS Jade as RPM Package and deploy on SLES

asked 2018-01-19 10:07:18 -0500

Alex795 gravatar image

Hello everyone,

I am struggeling to install ROS Jade on multiple SUSE Linux Enterprise Server nodes. I have achieved to install ROS manually on one node by following the "Build from source" wiki entry and it seems to work. Some dependencies were not available in the SUSE Package Manager, I have either compiled those from source or found a package on another public repository.

Question1: The actual question is how can I deploy ROS on multiple SLES nodes (that are not connected to the internet) without compiling it every time from scratch?

My approach:

  1. Download all ROS dependencies (got those via "rosdep install --from-paths src --ignore-src --rosdistro jade -y" )
  2. Compile and Package dependencies that are not in the SUSE repository by hand.
  3. Package ROS as RPM and transfer it together with all the dependencies to the node.
  4. Install rpm packages

Question2: How do I actually create a RPM .spec file for ROS? What kind of directories should be included? What do I need to take care of?

Question3: If I understood correctly, the command "rosdep install --from-paths src --ignore-src --rosdistro jade -y" lists all build dependencies. Are those the same as the runtime dependencies? Means that I definetly should install all those dependencies on every node that runs ROS?

Every help is very much appreciated. Thank you.

edit retag flag offensive close merge delete


Not a solution, but an observation: Jade is EOL. That might not be a problem for you, but just wanted to point that out.

gvdhoorn gravatar image gvdhoorn  ( 2018-01-19 10:25:51 -0500 )edit

How do I actually create a RPM .spec file for ROS?

I'm not sure, but I believe that bloom still generates spec files for Fedora, and has done so for the past few years. Those should be available in all release repositories of ROS packages that have been released through the buildfarm.

gvdhoorn gravatar image gvdhoorn  ( 2018-01-19 10:28:53 -0500 )edit
gvdhoorn gravatar image gvdhoorn  ( 2018-01-19 10:31:42 -0500 )edit

(I keep posting comments as this is all rather speculative (I don't use Fedora/SUSE/rpm based distros)

Based on #q173804, you can generate a .spec file using bloom-generate like so:

bloom-generate rosrpm --os-name=fedora --os-version=26 --ros-distro=lunar

rosrpm puts things in ..

gvdhoorn gravatar image gvdhoorn  ( 2018-01-20 08:15:55 -0500 )edit

.. /opt/ros/.., and I used Fedora 26 and ROS Lunar here as versions.

gvdhoorn gravatar image gvdhoorn  ( 2018-01-20 08:17:23 -0500 )edit