【期間限定】WSLのUbuntu 18.04でapt-keyコマンドを実行した時に「IPC connect call failed」のエラーになった時のワークアラウンド

Azul Zulu Enterprise for AzureUbuntuにインストールするには、以下の様な手順を踏みます。

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 0xB1998361219BD9C9
sudo apt-add-repository "deb http://repos.azul.com/azure-only/zulu/apt stable main"
sudo apt-get -q update
sudo apt-get -y install zulu-11-azure-jdk

しかし、Windows10(1804)*1のWSL上のUbuntu 18.04で実行すると、apt-key advコマンドを実行したところで以下の様なエラーになります。

[]:$ sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 0xB1998361219BD9C9
Executing: /tmp/apt-key-gpghome.Q3mT2gIxgQ/gpg.1.sh --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 0xB1998361219BD9C9
gpg: connecting dirmngr at '/tmp/apt-key-gpghome.Q3mT2gIxgQ/S.dirmngr' failed: IPC connect call failed
gpg: keyserver receive failed: No dirmngr

これはGitHubのIssue Ubuntu 18.04 gpg dirmngr IPC connect call failedに上げられているようにWSLの不具合で、他のIssueでのコメントによると、Windows10の最新アップデート(1809)では既に修正されているらしいです。*2

しかし、1809は例のファイル消失不具合の影響でロールアウトが大いに遅れていて、リリースはされたけどWindows Updateでの配信はまだ行われてないみたい…ということで、この場合の回避策が以下です。 --recv-keysの後につけるキーを、curlコマンドのURLのクエリーにつけて、ダウンロードしたキーをパイプしてapt-keyコマンドにつなぐようにします。後は所定の手順と同様です。

curl -sL "http://keyserver.ubuntu.com/pks/lookup?op=get&search=0xB1998361219BD9C9" | sudo apt-key add
sudo apt-add-repository "deb http://repos.azul.com/azure-only/zulu/apt stable main"
sudo apt-get -q update
sudo apt-get -y install zulu-11-azure-jdk

以上、WSLのUbuntu 18.04でapt-keyコマンドを実行した時に「IPC connect call failed」のエラーになった時のワークアラウンドについてでした。

*1:1804が対象なので、この記事は期間限定のわけです

*2:Insider PreivewのBuild 18298ではなおってました。1809でどうかは手元に環境がないのでわかりません