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

Revision history [back]

click to hide/show revision 1
initial version

Thanks to @nuclearsandwich for pointing me to the source of the issue: I wasn't aware even basic build tools like catkin need to be build first through distribution.yaml (instead of being used from the prerequisites: repositories defined in the ros_buildfarm_config's index.yaml.

catkin was actually also in the distribution list, but it failed to build for different reasons.

First it was /usr/bin/env: ‘python’: No such file or directory which I was able to work around by injecting ln -s /usr/bin/python3 /usr/bin/python into the docker file, then it failed because of not finding python-catkin-pkg or ImportError: No module named terminal_color so I injected installing python-catkin-pkg and python-catkin-pkg-modules as well. Eventually I figured there's probably another package which is expected to be build first which would install all the packages and configure the build environment, so I tried building ros first. It also failed, but it apparently prepared the docker environment enough for catkin to build. Now, other packages build as well.

tl;dr:

RuntimeError: Could not resolve the rosdep key indicates that this package should be built first.

The correct order seems to be rospack => ros => catkin => all other packages.

Thanks to @nuclearsandwich for pointing me to the source of the issue: I wasn't aware even basic build tools like catkin need to be build first through distribution.yaml (instead of being used from the prerequisites: repositories defined in the ros_buildfarm_config's index.yaml.

catkin was actually also in the distribution list, but it failed to build for different reasons.

First it was /usr/bin/env: ‘python’: No such file or directory which I was able to work around by injecting ln -s /usr/bin/python3 /usr/bin/python into the docker file, then it failed because of not finding python-catkin-pkg or ImportError: No module named terminal_color so I injected installing python-catkin-pkg and python-catkin-pkg-modules as well. Eventually I figured there's probably another package which is expected to be build first which would install all the packages and configure the build environment, so I tried building ros first. It also failed, but it apparently prepared the docker environment enough for catkin to build. Now, other packages build as well.

tl;dr:

RuntimeError: Could not resolve the rosdep key indicates that this package should be built first.

The correct order seems to be cmake_modules => rospack => genmsg => roscpp_core => genpy =>message_runtime => ros => catkin => all other packages.