0
$\begingroup$

Rosanswers logo

I am trying to install ROS on a windows 10 system (version 1803) following the instructions at http://www.ros.org/ and alternately https://janbernloehr.de/2017/06/10/ros-windows help which I reached from http://wiki.ros.org/Installation/Windows.

I have made sure that WSL is turned on. I installed the latest Ubuntu from: https://www.microsoft.com/en-us/p/ubuntu/9nblggh4msv6#activetab=pivot:overviewtab

The following gives the ubuntu release information (I do not know what it means that “No LSB modules are available” but have included it for completeness).

karl@DESKTOP-H1L55EN:/mnt/c/Users/Karl$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 18.04.1 LTS
Release:        18.04
Codename:       bionic

One thing to note from Jan’s version, he does not show configuring a Ubuntu repository. Once he gets a modern version of WSL going, he goes straight to setting up the sources list and keys. This is important to note because, for me, configuring my Ubuntu repository (from the suggested source:

https://help.ubuntu.com/community/Repositories/Ubuntu which leads to https://help.ubuntu.com/community/AptGet/Offline/Repository )

is far more complicated than all the rest of the installation steps combined, i.e., I’d love to skip it as well.

From: https://answers.ros.org/question/190100/indigo-on-ubuntu1404-problempoint-13-set-up-your-keys-means/ I gather that I don’t really need to set up the keys to continue the installation process. However, I get errors if I try the follow-on steps (which I’ll show later on). So, I thought I should try to get the repository configured before I continued (in case that is causing any or all of the downstream problems).

I downloaded all the suggested repository files with the following caveat. The instructions call for Packages.bz2 , Packages.gz, and Release from the main, multiverse, restricted, and universe components for the needed architecture (amd64) to be placed in the appropriate directories on my machine. Each of the locations had two of those files, but no packages.bz2. They did each have packages.xz. So, I downloaded them instead. So, now I have the following in folders in my … dists/bionics directory.

karl@DESKTOP-H1L55EN:/home/repository/dists/bionic$ dir  
Contents-amd64.gz  Release  Release.gpg  main  multiverse  restricted  universe
karl@DESKTOP-H1L55EN:/home/repository/dists/bionic$.  

And main (as well as multiverse, restricted, and universe) each look like the following:

karl@DESKTOP-H1L55EN:/home/repository/dists/bionic/main$ dir
Packages.gz  Packages.xz  Release

The next step (Add the local repository in your sources list) was not clear to me.
From: https://help.ubuntu.com/community/Repositories/CommandLine It would appear that my /etc/apt/sources.list should have lines that look like the following.

deb http://us.archive.ubuntu.com/ubuntu/ saucy universe
deb-src http://us.archive.ubuntu.com/ubuntu/ saucy universe
deb http://us.archive.ubuntu.com/ubuntu/ saucy-updates universe
deb-src http://us.archive.ubuntu.com/ubuntu/ saucy-updates universe

where bionic should be substituted for saucy.

The following uncommented lines are in my sources.list
deb http://archive.ubuntu.com/ubuntu/ bionic main restricted
deb http://archive.ubuntu.com/ubuntu/ bionic-updates main restricted
deb http://archive.ubuntu.com/ubuntu/ bionic universe
deb http://archive.ubuntu.com/ubuntu/ bionic-updates universe
deb http://archive.ubuntu.com/ubuntu/ bionic multiverse
deb http://archive.ubuntu.com/ubuntu/ bionic-updates multiverse
deb http://archive.ubuntu.com/ubuntu/ bionic-backports main restricted universe multiverse
deb http://security.ubuntu.com/ubuntu/ bionic-security main restricted
deb http://security.ubuntu.com/ubuntu/ bionic-security universe
deb http://security.ubuntu.com/ubuntu/ bionic-security multiverse

I assume that I don’t need any deb-src (just working from binaries). I see that the ones in the example have us. archive... and mine do not. But, I don’t know enough to know if that matters.

sudo apt-get update gets me the following lines:

Get:1 http://packages.ros.org/ros/ubuntu bionic InRelease [4031 B]
Err:1 http://packages.ros.org/ros/ubuntu bionic InRelease
The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 5523BAEEB01FA116
Reading package lists... Done
W: GPG error: http://packages.ros.org/ros/ubuntu bionic InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 5523BAEEB01FA116
E: The repository 'http://packages.ros.org/ros/ubuntu bionic InRelease' is not signed.
N: Updating from such a repository can't be done securely, and is therefore disabled by default.
N: See apt-secure(8) manpage for repository creation and user configuration details.

As suggested, I read the man page and decided to try it with the --allow-unauthenticated option and got the following:

Get:1 http://packages.ros.org/ros/ubuntu bionic InRelease [4031 B]
Hit:2 http://archive.ubuntu.com/ubuntu bionic InRelease
Get:3 http://archive.ubuntu.com/ubuntu bionic-updates InRelease [88.7 kB]
Get:4 http://security.ubuntu.com/ubuntu bionic-security InRelease [83.2 kB]
Get:5 http://archive.ubuntu.com/ubuntu bionic-backports InRelease [74.6 kB]
Err:1 http://packages.ros.org/ros/ubuntu bionic InRelease
  The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 5523BAEEB01FA116
Get:6 http://security.ubuntu.com/ubuntu bionic-security/main amd64 Packages [185 kB]
Get:7 http://security.ubuntu.com/ubuntu bionic-security/universe amd64 Packages [89.8 kB]
Get:8 http://security.ubuntu.com/ubuntu bionic-security/universe Translation-en [48.7 kB]
Get:9 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 Packages [413 kB]
Get:10 http://archive.ubuntu.com/ubuntu bionic-updates/main Translation-en [153 kB]
Get:11 http://archive.ubuntu.com/ubuntu bionic-updates/universe amd64 Packages [567 kB]
Get:12 http://archive.ubuntu.com/ubuntu bionic-updates/universe Translation-en [149 kB]
Reading package lists... Done
W: GPG error: http://packages.ros.org/ros/ubuntu bionic InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 5523BAEEB01FA116
E: The repository 'http://packages.ros.org/ros/ubuntu bionic InRelease' is not signed.
N: Updating from such a repository can't be done securely, and is therefore disabled by default.
N: See apt-secure(8) manpage for repository creation and user configuration details.

If it is clear that I have messed up already (and that this is what will cause nothing to work quite right after step 1.2, then please don’t bother with the rest. If all of the above is a red herring, please read on.

I don’t know a test to see if the repository is properly configured. So, I moved on to the ROS installation step 1.2. Running:

sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'

gives me no feedback, including no errors. So, it is on to step 1.3.

Step 1.3 (Set up your keys) wants me to enter:

sudo apt-key adv --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-key 421C365BD9FF1F717815A3895523BAEEB01FA116

Which gives me:

karl@DESKTOP-H1L55EN:/mnt/c/Users/Karl$ sudo apt-key adv --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-key 421C365BD9FF1F717815A3895523BAEEB01FA116
[sudo] password for karl:
Executing: /tmp/apt-key-gpghome.XFGOVLcd9n/gpg.1.sh --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-key 421C365BD9FF1F717815A3895523BAEEB01FA116
gpg: connecting dirmngr at '/tmp/apt-key-gpghome.XFGOVLcd9n/S.dirmngr' failed: IPC connect call failed
gpg: keyserver receive failed: No dirmngr

It does not seem to matter whether I get my command line from bash in a command prompt or starting a ubuntu window. And I tried each of the other suggested servers. Doing an ls –a on the /tmp directory shows an empty directory.

The instructions for setting up my keys appears to be identical for Melodic, Lunar, and Kinetic. So, I am assuming this is not an ROS version issue (I am shooting for Melodic, as that is indicated for ubuntu – 18.04).

From what I can tell, dirmngr comes with Windows 10.

Running

$ sudo apt-get install dirmngr --install-recommends

Outputs:

karl@DESKTOP-H1L55EN:/mnt/c/Users/Karl$ sudo apt-get install dirmngr --install-recommends
Reading package lists... Done
Building dependency tree
Reading state information... Done
dirmngr is already the newest version (2.2.4-1ubuntu1.1).
The following package was automatically installed and is no longer required:
  libfreetype6
Use 'sudo apt autoremove' to remove it.
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

Which I interpret as “it is already installed just fine.”

I have searched ROS questions with: no dirmngr, install problem windows and Set up your keys (this one showed some relevant responses, but did not include my error message).

I have searched the net and found sources talking about “adv” being deprecated. One suggested that changing it to “add” fixes the problem. It did not for me. These sources also talk about it being related to ubuntu 18.04 and a problem with that version timing out because of an error.

Step 1.4 suggests:

sudo apt-get update

Which gives the same basic result as above. So I went ahead and tried installing the ros-melodi-desktop-full.

sudo apt-get install ros-melodic-desktop-full

This gave me the following results:

karl@DESKTOP-H1L55EN:/etc/apt$ sudo apt-get install ros-melodic-desktop-full
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package ros-melodic-desktop-full

So, with one long trail of things not going quite like it should be, I am stumped and would sure appreciate some help.


Edit: following @gvdhoorn’s suggestion, I reinstalled my Ubuntu and repeated the step of configuring the repository. I used the same route as I described above. But, this time I interpreted what they were saying differently and simply ran apt-get update. I interpret the following to mean that I have successfully completed that step.

karl@DESKTOP-H1L55EN:/etc/apt/sources.list.d$ sudo apt-get update
[sudo] password for karl:
Get:1 http://security.ubuntu.com/ubuntu bionic-security InRelease [83.2 kB]
Hit:2 http://archive.ubuntu.com/ubuntu bionic InRelease
Get:3 http://archive.ubuntu.com/ubuntu bionic-updates InRelease [88.7 kB]
Get:4 http://archive.ubuntu.com/ubuntu bionic-backports InRelease [74.6 kB]
Get:5 http://archive.ubuntu.com/ubuntu bionic/universe amd64 Packages [8570 kB]
Get:6 http://archive.ubuntu.com/ubuntu bionic/universe Translation-en [4941 kB]
Get:7 http://archive.ubuntu.com/ubuntu bionic/multiverse amd64 Packages [151 kB]
Get:8 http://archive.ubuntu.com/ubuntu bionic/multiverse Translation-en [108 kB]
Get:9 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 Packages [415 kB]
Get:10 http://archive.ubuntu.com/ubuntu bionic-updates/main Translation-en [155 kB]
Get:11 http://archive.ubuntu.com/ubuntu bionic-updates/restricted amd64 Packages [7028 B]
Get:12 http://archive.ubuntu.com/ubuntu bionic-updates/restricted Translation-en [3076 B]
Get:13 http://archive.ubuntu.com/ubuntu bionic-updates/universe amd64 Packages [570 kB]
Get:14 http://archive.ubuntu.com/ubuntu bionic-updates/universe Translation-en [151 kB]
Get:15 http://archive.ubuntu.com/ubuntu bionic-updates/multiverse amd64 Packages [5708 B]
Get:16 http://archive.ubuntu.com/ubuntu bionic-updates/multiverse Translation-en [3176 B]
Get:17 http://security.ubuntu.com/ubuntu bionic-security/main amd64 Packages [187 kB]
Get:18 http://security.ubuntu.com/ubuntu bionic-security/main Translation-en [72.7 kB]
Get:19 http://security.ubuntu.com/ubuntu bionic-security/universe amd64 Packages [91.5 kB]
Get:20 http://security.ubuntu.com/ubuntu bionic-security/universe Translation-en [50.3 kB]
Get:21 http://security.ubuntu.com/ubuntu bionic-security/multiverse amd64 Packages [1440 B]
Get:22 http://security.ubuntu.com/ubuntu bionic-security/multiverse Translation-en [996 B]
Get:23 http://archive.ubuntu.com/ubuntu bionic-backports/universe amd64 Packages [2852 B]
Get:24 http://archive.ubuntu.com/ubuntu bionic-backports/universe Translation-en [1200 B]
Fetched 15.7 MB in 26s (604 kB/s)
Reading package lists... Done

So, I went on to setting up my source list (step 1.2). I interpret the lack of any output to mean success.

karl@DESKTOP-H1L55EN:/etc/apt/sources.list.d$ sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'

So, I tried setting up the keys (step 1.3). The result is essentially the same error I was seeing. As is the case for each of the remaining steps.

karl@DESKTOP-H1L55EN:/etc/apt/sources.list.d$ sudo apt-key adv --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-key 421C365BD9FF1F717815A3895523BAEEB01FA116
Executing: /tmp/apt-key-gpghome.dpaoW7LKHw/gpg.1.sh --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-key 421C365BD9FF1F717815A3895523BAEEB01FA116
gpg: connecting dirmngr at '/tmp/apt-key-gpghome.dpaoW7LKHw/S.dirmngr' failed: IPC connect call failed
gpg: keyserver receive failed: No dirmngr

karl@DESKTOP-H1L55EN:/etc/apt/sources.list.d$ sudo apt update
Get:1 http://packages.ros.org/ros/ubuntu bionic InRelease [4031 B]
Hit:2 http://archive.ubuntu.com/ubuntu bionic InRelease
Hit:3 http://archive.ubuntu.com/ubuntu bionic-updates InRelease
Hit:4 http://security.ubuntu.com/ubuntu bionic-security InRelease
Hit:5 http://archive.ubuntu.com/ubuntu bionic-backports InRelease
Err:1 http://packages.ros.org/ros/ubuntu bionic InRelease
  The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 5523BAEEB01FA116
Reading package lists... Done
W: GPG error: http://packages.ros.org/ros/ubuntu bionic InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 5523BAEEB01FA116
E: The repository 'http://packages.ros.org/ros/ubuntu bionic InRelease' is not signed.
N: Updating from such a repository can't be done securely, and is therefore disabled by default.
N: See apt-secure(8) manpage for repository creation and user configuration details.
karl@DESKTOP-H1L55EN:/etc/apt/sources.list.d$ sudo apt install ros-melodic-desktop-full
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package ros-melodic-desktop-full
karl@DESKTOP-H1L55EN:/etc/apt/sources.list.d$

I then went back and tried the following two additional suggested servers for setting up the keys

hkp://pgp.mit.edu:80
hkp://keyserver.ubuntu.com:80

and got the same results as above.

As mentioned originally, it is not clear that I need to get the keys set up. But, it seems like the place to start on figuring out why it can't find ros-melodic-desktop-full.

This last part is where I followed the accepted answer.

karl@DESKTOP-H1L55EN:/etc/apt/sources.list.d$ wget http://packages.ros.org/ros.key -O - | sudo apt-key add -
--2018-10-30 08:44:31--  http://packages.ros.org/ros.key
Resolving packages.ros.org (packages.ros.org)... [sudo] password for karl: 64.50.236.52, 140.211.166.134, 64.50.233.100, ...
Connecting to packages.ros.org (packages.ros.org)|64.50.236.52|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 1162 (1.1K)
Saving to: ‘STDOUT’

-                             100%[=================================================>]   1.13K  --.-KB/s    in 0s

2018-10-30 08:44:31 (46.2 MB/s) - written to stdout [1162/1162]


OK
karl@DESKTOP-H1L55EN:/etc/apt/sources.list.d$ sudo apt update
Get:1 http://packages.ros.org/ros/ubuntu bionic InRelease [4031 B]
Hit:2 http://archive.ubuntu.com/ubuntu bionic InRelease
Get:3 http://archive.ubuntu.com/ubuntu bionic-updates InRelease [88.7 kB]
Get:4 http://security.ubuntu.com/ubuntu bionic-security InRelease [83.2 kB]
Get:5 http://archive.ubuntu.com/ubuntu bionic-backports InRelease [74.6 kB]
Get:6 http://packages.ros.org/ros/ubuntu bionic/main amd64 Packages [323 kB]
Get:7 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 Packages [416 kB]
Get:8 http://archive.ubuntu.com/ubuntu bionic-updates/main Translation-en [155 kB]
Get:9 http://archive.ubuntu.com/ubuntu bionic-updates/universe amd64 Packages [570 kB]
Fetched 1715 kB in 25s (69.6 kB/s)
Reading package lists... Done
Building dependency tree
Reading state information... Done
87 packages can be upgraded. Run 'apt list --upgradable' to see them.
karl@DESKTOP-H1L55EN:/etc/apt/sources.list.d$ sudo apt install ros-melodic-desktop-full
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following additional packages will be installed:

And then a whole lot of lines as ROS successfully installed (Whoo hoo!).


Originally posted by SlopeSurfer on ROS Answers with karma: 3 on 2018-10-29

Post score: 0


Original comments

Comment by gvdhoorn on 2018-10-29:
Can you please fix the formatting of your question?

+100 for using Preformatted Text for all the console output and config files, but for the rest of the text it's not needed and makes things hard to read.

Comment by gvdhoorn on 2018-10-29:
And a first comment: I don't know what you are doing exactly with the dists/bionic/main steps, but that should all not be needed. You can treat 18.04 on WSL as a regular Ubuntu, and you wouldn't do that on a "real Linux" system either.

Comment by gvdhoorn on 2018-10-29:
I would suggest:

  1. remove everything you've done earlier
  2. reinstall 18.04 from the MS store
  3. follow the regular Ubuntu Bionic ROS install instructions (apt)

Everything should work as normal. The blog post is nice, but there is nothing special to Win10/WSL (apart from the X-server bits).

Comment by gvdhoorn on 2018-10-29:
To edit your question, press the edit button/link right below the question text (a bit to the right of the big "Comments" heading).

Comment by SlopeSurfer on 2018-10-29:
Thank you for the persistence on the editing. From your first suggestion, I tried hitting the edit button that was next to the question, not realizing that would only edit the question. From your last suggestion I found the edit button at the bottom.

Comment by SlopeSurfer on 2018-10-29:
Unless I am mistaken, the regular Ubuntu Bionic ROS installation steps say to set up the repository. It does not say how, but has a link, which is where I start to get bogged down (that is what the dist/bionic/main stuff is about) Big question: Do I need to set up a repository?

Comment by gvdhoorn on 2018-10-29:\

Do I need to set up a repository?

No.

the regular Ubuntu Bionic ROS installation steps say to set up the repository

yes, and that means adding an apt source to your local configuration. Which you do by following the steps in the Setup your sources.list section of the install doc.

Comment by gvdhoorn on 2018-10-29:\

It does not say how, but has a link, which is where I start to get bogged down

the context for that link is:

Configure your Ubuntu repositories to allow "restricted," "universe," and "multiverse."

So you only follow the sections on the Canonical page that tell you how to do that.

Comment by gvdhoorn on 2018-10-29:
But you probably don't need to do that. Just follow the regular install instructions and if -- after setting everything up -- some packages don't want to install, then it may make sense to look at the section about enabling Universe again.

Comment by SlopeSurfer on 2018-10-29:
I did not see your last suggestion until I had reinstalled Ubuntu and reinterpreted the suggestions for configuring the repository. I think that fixed the repository issue. Thank you. I then appended my question with the results of that and the rest of the steps, which are still coming up short.

Comment by SlopeSurfer on 2018-10-29:
BTW, I did not know if would be good form to append the question, overwrite the question with just this latest stuff, or start a new question. I don't think that there is much for anyone else to learn about configuring the repository from my earlier foible and would be happy to delete all that.

Comment by gvdhoorn on 2018-10-30:
Never delete anything. Posts on this forum will be read by future visitors, which will have a hard time figuring out what the chronology of everything is if you start deleting sections / previous versions.

Just append something like this to your question text and update:

Edit: ...

$\endgroup$

1 Answer 1

0
$\begingroup$

Rosanswers logo

Edit1:

after looking into this some more I believe you're running into a documented issue with 18.04 and WSL: Microsoft/WSL#3286: Ubuntu 18.04 gpg dirmngr IPC connect call failed (and sbt/sbt#4261).

Apparently this is a bug in gpg (from this comment) and has already been fixed, but Ubuntu 18.04 is still providing users with the non-fixed version.

So the only real fix would be for Canonical to start distributing the fixed version of gpg, but that can take a while.

As a work-around, you can try the following command to import the key, which uses a different approach (we first make sure you have wget installed, then use that to download the key and immediately import it using apt-key):

sudo apt install -y wget
wget http://packages.ros.org/ros.key -O - | sudo apt-key add -

Now you should be able to sudo apt update and eventually sudo apt install ros-melodic-desktop-full.

If this fixes it, the problem with your setup was always just the key for the repository missing. That key is a cryptographic key that is used to verify that the packages that you install using apt have not been tampered with. Without that key, apt cannot verify this and that leads to errors such as:

The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 5523BAEEB01FA116

It's just apt telling you that it cannot verify the contents of the new repository and then ignoring it (as ignoring it seems like a safe thing to do).

If the alternative approach successfully imports the key, then everything should start working.


Old answer:

I just tried this in an empty Docker container running Ubuntu Bionic (note: you do not need to do any of this, I just didn't have a Bionic machine available, so I used Docker to test the installation procedure).

The packages I had to make sure were there at the minimum were: lsb-release, dirmngr and gnupg2. This is also what the Docker images created by @ruffsl install (here). After having installed those, 'everything' worked and I could apt install ros-melodic-desktop-full.

Again: you do not need to do anything with Docker.

Can you run the following commands and copy-paste the output into your question (in a new edit):

sudo apt clean && sudo apt update
sudo apt install -y dirmngr lsb-release gnupg2

At this point you should be able to run sudo apt install ros-melodic-desktop-full (or any other ROS package really).


Originally posted by gvdhoorn with karma: 86574 on 2018-10-30

This answer was ACCEPTED on the original site

Post score: 4


Original comments

Comment by gvdhoorn on 2018-10-30:
As a PS: please be aware that installing ROS under WSL will not allow you a typical ROS user experience. Access to hardware is extremely limited under WSL and getting GUI applications to work can be a challenge.

Performance of various tools / nodes might also be impacted.

Comment by gvdhoorn on 2018-10-30:
furthermore: you will really be running Ubuntu Linux inside Windows and it's not an actual ROS-on-Windows setup. You cannot use Visual Studio to develop anything for instance.

If you really want to use ROS on Windows, you might want to take a look at the experimental port that ..

Comment by gvdhoorn on 2018-10-30:
.. Microsoft has made available recently. See Introducing ROS1 on Windows for the announcement.

Comment by SlopeSurfer on 2018-10-30:
I can't thank gvdhoorn enough for his patience, persistence, and rapidness on this.

Comment by gvdhoorn on 2018-10-30:
Good to hear you got things to work.

I'm curious whether upgrading gpg would have worked as well.

I don't see a lot of reports about this problem from 'native' installs of Ubuntu 18.04 (ie: not using WSL).

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.