Robotics StackExchange | Archived questions

How to install only execution dependencies?

Hello, in package.xml, it is possible to define execution dependencies. These are the dependencies I would want to install, if I deploy an install space. How do I install only execution (or build/test/documentation) dependencies? Both rosdep and rospack do not seem to support this, see https://github.com/ros-infrastructure/rosdep/blob/f771260026c334af46db84f7b03c9b856fa5b4b1/src/rosdep2/rospkg_loader.py#L143 . Best Regards!

Asked by Nicolas on 2019-10-25 11:39:46 UTC

Comments

See https://github.com/ros-infrastructure/rosdep/pull/727

Asked by Nicolas on 2019-10-28 08:20:17 UTC

Answers

I don't believe this is currently supported. As you already found, get_rosdeps(..) combines all dependencies into a single set (here):

deps = pkg.build_depends + pkg.buildtool_depends + pkg.run_depends + pkg.test_depends

There is already an open issue about this: ros-infrastructure/rosdep#587.

Getting this supported does not seem like it would be too difficult. It would make a great (first) pull request to ros-infrastructure/rosdep.


A workaround used by the author of that issue:

Currently, I've made a workaround solution which temporarily removes the irrelevant lines from the package.xml with a sed command and then runs the rosdep command.

This is really only just a workaround. Adding proper support to rosdep for this would be very much preferred.

Asked by gvdhoorn on 2019-10-26 04:25:15 UTC

Comments