ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question

Purpose, documentation of python-ros* packages

asked 2019-09-15 14:53:24 -0500

130s gravatar image

updated 2019-09-15 14:55:03 -0500

Can't find purpose and documentation of these packages if anything.

I noticed (awhile ago honestly though) there are many python-ros* packages available from apt repo, much more than a few of them that are known from some common usecases (rosdistro, rospkg, rosinstall*). On my Ubuntu 18.04 I see:

$ cat /etc/apt/sources.list.d/ros-latest.list
deb bionic main

$ sudo apt-get install python-ros[TAB]
python-rosbag                 python-roscreate              python-rosgraph-msgs          python-rosmake                python-rospkg-modules         python-roswtf
python-rosboost-cfg           python-rosdep                 python-rosinstall             python-rosmaster              python-rospy                  
python-ros-buildfarm          python-rosdep2                python-rosinstall-generator   python-rosmsg                 python-rosservice             
python-ros-buildfarm-modules  python-rosdistro              python-roslaunch              python-rosnode                python-rostest                
python-rosclean               python-rosdistro-modules      python-roslib                 python-rosparam               python-rostopic               
python-roscpp-msgs            python-rosgraph               python-roslz4                 python-rospkg                 python-rosunit

Looking at some of them, the version of these python-ros* might look older than the latest available from each ROS distro. E.g. for rospy (ATM the latest release seems to be 1.14.3),

$ apt-cache policy ros-melodic-rospy
  Installed: (none)
  Candidate: 1.14.3-0bionic.20190601.011442
  Version table:
     1.14.3-0bionic.20190601.011442 500
        500 bionic/main amd64 Packages

$ apt-cache policy python-rospy
  Installed: (none)
  Candidate: 1.13.5+ds1-3
  Version table:
     1.13.5+ds1-3 500
        500 bionic/universe amd64 Packages
        500 bionic/universe i386 Packages

My guess is as follows:

  • Each package in ros_comm are packaged as installable from standard debian/Ubuntu repository.
  • Released only once per Linux distro?
edit retag flag offensive close merge delete

1 Answer

Sort by » oldest newest most voted

answered 2019-09-16 02:54:10 -0500

gvdhoorn gravatar image

updated 2019-09-16 05:21:05 -0500

At least for the python-* packages that seem to come from ros_comm, those would be the upstream packages.

The same would apply to the many ros-* packages that can be installed from the repositories directly. Those are imported from the upstream Debian repositories. You can recognise them as they don't have a ROS distribution name in the package name (so it would be ros-desktop instead of ros-$ROS_DISTRO-desktop fi).

Quoting from wiki/UpstreamPackages:

Thanks to diligent effort from Jochen Sprickerhof and Leopold Avellaneda, there are now ROS packages available upstream in Debian unstable and Ubuntu Xenial that can be installed from the main Debian and Ubuntu repositories. Here’s a short overview from Jochen at ROSCon 2015:

Most of the packages up to desktop-full are available (overview of package status: The original ROS packages have been modified to follow Debian guidelines, which includes splitting packages into multiple pieces, changing names in some cases, installing to /usr according to FHS guidelines, and using soversions on shared libraries. For example, roslib is called python-roslib and roscpp is in the libroscpp-dev and libroscpp0d packages.

Unlike the OSRF-provided ROS packages from, the packages in the upstream repositories are not attached to a specific ROS distribution. Rather, they represent a rolling release that will be updated periodically within Debian unstable and then periodically latched at various points into downstream Debian and Ubuntu distributions.

The general advice is to not use them, especially when you actually want to use a specific ROS release.

The upstream packages conflict with the ones from and installing them can lead to quite some difficult to diagnose problems with apt.

However, the upstreamed packages are built for many architectures for which "regular" ROS .deb packages are not available from If you have one of those platforms, would like to avoid building ROS from source and use a subset of ROS that is less version-dependent (fi: messages that have not changed and are unlikely to change) then using the upstream packages can actually be convenient.

edit flag offensive delete link more

Question Tools

1 follower


Asked: 2019-09-15 14:53:24 -0500

Seen: 210 times

Last updated: Sep 16 '19