Current situation

The official ROS page shows that as platform supported are: Ubuntu and Ubuntu (armhf). The rest of the platforms are experimental.

If you want to install ROS is a Debian box you should compile it from sources. OSRF(current ROS maintainer) provides only packages for Ubuntu. These packages are generated using a tool (bloom). They are installed in /opt/ros/$rosversion and doesn't obey completely FHS.

Another point is that Debian requires that any library installed has defined a SONAME. ROS packages don't have defined any SONAME. The aim of all this effort is to upload them as official packages in Debian.

Work done

ROS has a set of packages that depends one of the others. There's a core and a defined set of typical variants. These are defined in a document [REP]. In our case, we though that a good target should be the desktop_full variant.

Quoting ROS documentation: The desktop variants are main entry points for users. The desktop_full is a "batteries included" experience for users and attempts to collect stable, well-documented libraries. These libraries may be specific to certain classes of robots, such as mobile robots, though they are not specific to a particular robot. The desktop variant is more minimal and only provides the stacks in the robot variant, plus visualization and debugging tools. Both of these variants contain tutorials for the stacks they provide.

We have created a set of packages of the core of ROS plus other extras. Currently (May 2015) we have built more than a half of the packages of desktop_full installation. The packages have been build for: Debian Jessie and Stretch(sid-testing) and Ubuntu Trusty.

All the packages have been compiled in a clean environment for the selected distros. They are more or less lintian clean because they are still under development. They obey Debian policies and have the needed SONAMES. We are working under the debian-science team umbrella. The sources of the packages are hosted here.


We have patches mainly for all the packages in: - Install them in places following Debian policies - Creating SONAMEs for all the libs (adding 0d to the name of the library)

Also, we have patched rospkg to work with packages installed in /usr/share and not be penalty in performance.