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
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 ased
command and then runs therosdep
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
See https://github.com/ros-infrastructure/rosdep/pull/727
Asked by Nicolas on 2019-10-28 08:20:17 UTC