Robotics StackExchange | Archived questions

Package ROS Jade as RPM Package and deploy on SLES

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.

Asked by Alex795 on 2018-01-19 11:07:18 UTC

Comments

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

Asked by gvdhoorn on 2018-01-19 11:25:51 UTC

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.

Asked by gvdhoorn on 2018-01-19 11:28:53 UTC

See ros-gbp/roscpp_core-release/rpm/lunar/26/roscpp_core for an example.

Asked by gvdhoorn on 2018-01-19 11:31:42 UTC

(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 ..

Asked by gvdhoorn on 2018-01-20 09:15:55 UTC

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

Asked by gvdhoorn on 2018-01-20 09:17:23 UTC

Answers