Ask Your Question
0

Installing ros-lunar on Solus error:"Could not detect OS"

asked 2018-01-26 12:09:58 -0600

ahmadjab gravatar image

updated 2018-01-27 05:03:51 -0600

jayess gravatar image

when I run

$ rosdep update

I get this error

OsNotDetected: Could not detect OS, tried ['windows' ...

I've read in a different answer, that I should use ROS_OS_OVERRIDE

but I don't know what value to put for the OS since Solus isn't built on any other distro.

edit retag flag offensive close merge delete

Comments

What OS are you using?

jayess gravatar imagejayess ( 2018-01-26 15:18:21 -0600 )edit

Solus linux, this is there website

www.solus-project.com

ahmadjab gravatar imageahmadjab ( 2018-01-26 18:00:11 -0600 )edit

1 Answer

Sort by ยป oldest newest most voted
2

answered 2018-01-27 04:59:13 -0600

gvdhoorn gravatar image

updated 2018-01-28 04:53:20 -0600

but I don't know what value to put for the OS since Solus isn't built on any other distro.

OS detection is used for (mostly) two things in ROS:

  1. determining the name of packages that provide system dependencies (ie: libraries and headers in the C++ case, modules and scripts for Python, etc)
  2. figuring out which package manager to use to install those packages

To add support for a new OS, you'll have to figure out how that OS does its package management (or, in the absence of a package concept, installs new software in general).

Ad 1: this comes down to providing mapping rules for rosdep keys to actual package names that Solus recognises. See #q215059 for some info on rosdep and why that is used in ROS, in addition to an example of such a mapping. You'll have to determine which packages map to which rosdep keys and add those to the database. After that, rosdep should know that boost maps to libboost-devel on Solus. It now needs to know how to install it, see below.

Ad 2: does Solus have a package manager? If so, how does it work? Does it use the pkg manager from another OS? If the answer is yes, ROS_OS_OVERRIDE could help. If not, you'll probably have to add a package manager 'plugin' to rosdep so it can communicate with whatever Solus uses.

Concluding: ROS_OS_OVERRIDE can be useful, but only if your target OS is (relatively) similar to an already supported OS (ie: Elementary OS may use the Ubuntu supported infrastructure, as it is a derivative).

If you can't do this for Solus, you'll have to add support, as described above.


Edit:

just a quick follow up question there're hundreds of packages in base.yml, therefor I was wondering if there is a list of "core" packages I should start with to get me started?

Note that the rosdep database that you are referring to doesn't list 'packages', but keys. The keys map to packages.

I don't know an easy way to recursively list the keys for just system dependencies that a set of ROS packages depends on, but to get a list of what would be installed on a Debian/Ubuntu system, you can use something like the following (this is essentially #q251732, but I'm using the ros:lunar-ros-core Docker image here because it is convenient, it should also work on a regular ROS install):

$ docker run -it --rm ros:lunar-ros-core \
     rosdep install \
     --simulate \
     --reinstall \
     --ignore-src \
     --from-paths /opt/ros/lunar \
     --rosdistro=lunar

ros-core is really the base ROS metapackage (see below), so replace with the image corresponding to the metapackage you'd like to target (I'd start with core or base first though).

See REP-142 for info on ROS top-level metapackages and see REP-3 for an overview of high-level ROS dependencies and required versions for specific ROS releases.

Note: some of the python- packages in the output come from the ROS ... (more)

edit flag offensive delete link more

Comments

thanks this answer help a lot, so I have to add support.

just a quick follow up question there're hundreds of packages in base.yml, therefor I was wondering if there is a list of "core" packages I should start with to get me started?

thank you again.

ahmadjab gravatar imageahmadjab ( 2018-01-27 18:30:32 -0600 )edit

I don't know an easy way to recursively list the keys for just system dependencies [..]

Perhaps @tfoote or @Dirk Thomas can help here.

rosdep keys .. --from-paths /opt/ros/lunar .. also prints ROS pkg names for me.

gvdhoorn gravatar imagegvdhoorn ( 2018-01-28 04:41:00 -0600 )edit

ok I think I'm on the right path now I'll try and figure thingsout from here.

thank you for the help

ahmadjab gravatar imageahmadjab ( 2018-01-29 08:25:29 -0600 )edit

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools

1 follower

Stats

Asked: 2018-01-26 12:09:58 -0600

Seen: 237 times

Last updated: Jan 28 '18