rosdep and unsupported OS install

asked 2020-02-24 08:44:28 -0500

Dben gravatar image

updated 2020-02-24 10:49:05 -0500

Hi, I am currently using Manjaro, an Arch based OS. It seems to be supported officially as described here: https://github.com/ros-infrastructure...

Nevertheless, when running rosdep install, I am encountering some issues:

rosdep install --from-paths ./robot_ws --ignore-src -r -y  
ERROR: the following packages/stacks could not have their rosdep keys resolved
to system dependencies:]
package_in_ws1: Unsupported OS [manjaro]
package_in_ws2: Unsupported OS [manjaro]
Continuing to install resolvable dependencies...
#All required rosdeps installed successfully

Because of this, it doesn't detect properly dependencies to install. I also tried to pass arch as a rosdistro, but it's also strange:

rosdep install --from-paths ./robot_ws --ignore-src -r -y --os=arch:
ERROR: the following packages/stacks could not have their rosdep keys resolved
to system dependencies:
package_in_ws1: No definition of [amcl] for OS [arch]
package_in_ws2: No definition of [ros_controllers] for OS [arch]
Continuing to install resolvable dependencies...
#All required rosdeps installed successfully

As a note, I tried 2 different ways of installing rosdep: with pip or with

yay -S python-rosdep

Edit1 rosdep install --from-paths ./robot_ws/src --ignore-src -r -y --os="arch:"

package_in_ws1: Cannot locate rosdep definition for [amcl]
package_in_ws2: Cannot locate rosdep definition for [ros_controllers]
edit retag flag offensive close merge delete

Comments

package_in_ws1: No definition of [amcl] for OS [arch]

as an observation: amcl is a ROS package (and so is ros_controllers (note btw that this is a metapackage and should not be depended on)). So rosdep should not be looking for them in the rosdep DB at all.

Could you try your command, but like this:

rosdep install --from-paths ./robot_ws/src --ignore-src -r -y --os="arch:"

it could be it complains about ros_controllers as it's a metapackage, I'm not sure.

Note: Arch is a supported OS as in: it can be detected by os_detect.py. But that doesn't mean the rosdep DB has rules for all dependencies. Those are two different things.

gvdhoorn gravatar image gvdhoorn  ( 2020-02-24 10:13:54 -0500 )edit

Ah ok, I didn't understand how it is working then. I added the output. It indeed doesn't find the rosdep definition. I guess i need to install it manually or use a container

Dben gravatar image Dben  ( 2020-02-24 10:49:54 -0500 )edit

Can you resolve anything with rosdep? What is the output of rosdep resolve --os="arch:" boost?

I've tested a few things in an manjarolinux/base container and I don't actually know right now why rosdep complains about some ROS packages, but is happy about others (in a test workspace, it only complains about xacro fi, but not about rviz, joint_state_publisher or robot_state_publisher).

gvdhoorn gravatar image gvdhoorn  ( 2020-02-24 11:16:13 -0500 )edit

When I answered you I edited the post with the result, I forgot to mention it. Thanks for the test, it is very strange :/

Dben gravatar image Dben  ( 2020-02-24 11:36:22 -0500 )edit

I found that rosdep can help you find missing dependencies, but you need to manually fetch them from the AUR (archlinux). I am not sure how it is in Manjaro. I got warnings for xacro as well, even though it was installed, but after getting the other missing one now rosdep says everything is installed.

sugarraysam gravatar image sugarraysam  ( 2021-01-02 21:06:14 -0500 )edit