rosdep get list of packages for dependencies
tl;dr: How do I get the list of packages that would be installed by rosdep install
without actually installing them?
I want to create a rootfs that can be used to (cross-)compile ROS2. Instead of setting up the ROS repo and running rosdep within the rootfs, I want to gather the dependencies as a list of deb packages outside of the rootfs and only install the list of deb packages that are returned by rosdep.
I.e. I do not want to run rosdep install
inside the rootfs, but rather want it to return the list of packages it would install and use this list in apt install <list>
Running:
rosdep keys --from-path src --ignore-packages-from-source --os debian:stretch --rosdistro=crystal
seems to include dependencies that are part of the workspace, although --ignore-packages-from-source
is provided. E.g. in a ROS2 base workspace from https://raw.githubusercontent.com/ros... , rosdep keys will provide a list that contains rclcpp
, rclpy
, launch
, std_msgs
. Hence, piping this into rosdep resolve
:
rosdep keys --from-path src -i --os debian:stretch --rosdistro=crystal | xargs rosdep resolve
will not provide the correct list because of ERROR: no rosdep rule for 'std_msgs'