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

Automated source dependancies

asked 2013-02-17 04:16:18 -0500

Dereck gravatar image

Is there a way to use

wstool merge

in an overlay in such a way that it will only pull packages which are not already installed in a sub-layer?

For example: I have the mobile variant of ROS installed in /opt/ros/groovy and I set up an overlay at ~/groovy_workspace. I then want to download the joystick-drivers package and any dependencies which have not already been installed into my overlay.

My motivation is to avoid running cmake on the packages which I already have built.

edit retag flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted

answered 2013-02-17 05:21:18 -0500

KruseT gravatar image

wstool merge --help gives you the options it has. --merge-keep does not quite do what you want, it does not detect that a package already exists in /opt/ros/groovy.

You could wget the url into a local file, then prune entries yourself, either manually or via a script. In python you could do that by yaml-parsing the rosinstall file you got via wget, giving you a list of dicts, then getting all packages you have installed, and removing those entries from the list, and then writing the remaining items into a file.

If enough people wanted this (indicated by +1 comments on my answer, or on a ticket on vcstools/rosinstall at github), we could maybe include such features, though probably into roslocate instead.

edit flag offensive delete link more


+1 seems good to me. The question comes up frequently in one form or another.

joq gravatar image joq  ( 2013-02-17 06:50:00 -0500 )edit

+1 indeed, I have been doing it by hand as you suggested. This would be a great feature to have. :)

Dereck gravatar image Dereck  ( 2013-02-17 06:54:06 -0500 )edit

Question Tools

1 follower


Asked: 2013-02-17 04:16:18 -0500

Seen: 505 times

Last updated: Feb 17 '13