ひつじTips

技術系いろいろつまみ食います。

WSL ubuntu18.04 に ROS Melodic を導入する際「1.3 Set up your keys」でgpgが「IPC connect call failed」「keyserver receive failed: No dirmngr」でコケる問題

小ネタなのであっさりで.

問題

WSLのubuntu18.04に,ROS Melodicを導入する際,いつもどおりmelodic/Installation/Ubuntu - ROS Wikiを参考に進めるが, 「1.3 Set up your keys」で,

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

を実行すると,

Executing: /tmp/apt-key-gpghome.cb5k8GtOFh/gpg.1.sh --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-key 421C365BD9FF1F717815A3895523BAEEB01FA116
gpg: connecting dirmngr at '/tmp/apt-key-gpghome.cb5k8GtOFh/S.dirmngr' failed: IPC connect call failed
gpg: keyserver receive failed: No dirmngr

というように失敗する.そしてそのまま「1.4 Installation」へ進んでもROSはインストールできない.

「If you experience issues connecting to the keyserver, you can try substituting hkp://pgp.mit.edu:80 or hkp://keyserver.ubuntu.com:80 in the previous command.」と書いているが,
keyserver を変更しても,この問題は解決しない.

解決策

下記を実行する.

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

レスポンスは以下のような感じ.

--2018-12-11 02:17:39--  http://packages.ros.org/ros.key
Resolving packages.ros.org (packages.ros.org)... 64.50.233.100, 140.211.166.134, 64.50.236.52
Connecting to packages.ros.org (packages.ros.org)|64.50.233.100|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 1162 (1.1K)
Saving to: ‘STDOUT’

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

2018-12-11 02:17:40 (31.7 MB/s) - written to stdout [1162/1162]

OK

その後,「1.4 Installation」へ進んで,

$ sudo apt update
Hit:1 http://archive.ubuntu.com/ubuntu bionic InRelease
Get:2 http://archive.ubuntu.com/ubuntu bionic-updates InRelease [88.7 kB]
Get:3 http://security.ubuntu.com/ubuntu bionic-security InRelease [83.2 kB]
Get:4 http://packages.ros.org/ros/ubuntu bionic InRelease [4031 B]
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 [335 kB]
Get:7 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 Packages [455 kB]
Fetched 1041 kB in 5s (217 kB/s)
Reading package lists... Done
Building dependency tree
Reading state information... Done
115 packages can be upgraded. Run 'apt list --upgradable' to see them.
$ 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:
  adwaita-icon-theme at-spi2-core autoconf automake autopoint autotools-dev avahi-daemon binfmt-support blt bzip2-doc cmake 
[snip]

と,インストールを始められる.

原因

WSLのubuntu18.04でgpgのバグが治っていないらしい...
(gpgがなにかは詳しく知らない...勉強しよ...)

参考

https://github.com/Microsoft/WSL/issues/3286

https://answers.ros.org/question/307024/win10-wsl-problems-installing-ros-on-ubuntu-1804/