Help us understand the problem. What is going on with this article?

WSLのUbuntuにRの最新バージョンを入れる

More than 1 year has passed since last update.

概要

WSL(Windows Subsystem for Linux)のUbuntu18においてRの最新バージョンを使いたいとき一筋縄では行かなかったのでメモする。
原因としてはWSLのバグでapt-key advできないことである。

原因

UbuntuにRの最新バージョンを入れたい場合は以下を実行すればよいはずである。
https://cran.r-project.org/bin/linux/ubuntu/README.html

しかし/etc/apt/sources.list fileにdebの記述を追加後、apt updateを行うと以下のエラーが発生する。

$sudo apt-get update
取得:1 https://packages.microsoft.com/repos/vscode stable InRelease [2,802 B]
取得:2 http://security.ubuntu.com/ubuntu bionic-security InRelease [83.2 kB]
取得:3 https://packages.microsoft.com/repos/vscode stable/main amd64 Packages [65.8 kB]
取得:4 https://cloud.r-project.org/bin/linux/ubuntu bionic-cran35/ InRelease [3,609 B]
エラー:4 https://cloud.r-project.org/bin/linux/ubuntu bionic-cran35/ InRelease
  公開鍵を利用できないため、以下の署名は検証できませんでした: NO_PUBKEY 51716619E084DAB9
取得:5 http://security.ubuntu.com/ubuntu bionic-security/main amd64 Packages [168 kB]
ヒット:6 http://archive.ubuntu.com/ubuntu bionic InRelease
取得:7 http://archive.ubuntu.com/ubuntu bionic-updates InRelease [88.7 kB]
取得:8 http://archive.ubuntu.com/ubuntu bionic-backports InRelease [74.6 kB]
取得:9 http://security.ubuntu.com/ubuntu bionic-security/main Translation-en [63.6 kB]
取得:10 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 Packages [328 kB]
取得:11 http://security.ubuntu.com/ubuntu bionic-security/universe amd64 Packages [66.8 kB]
取得:12 http://security.ubuntu.com/ubuntu bionic-security/universe Translation-en [39.3 kB]
取得:13 http://security.ubuntu.com/ubuntu bionic-security/multiverse amd64 Packages [1,444 B]
取得:14 http://archive.ubuntu.com/ubuntu bionic-updates/main Translation-en [125 kB]
取得:15 http://archive.ubuntu.com/ubuntu bionic-updates/universe amd64 Packages [199 kB]
取得:16 http://archive.ubuntu.com/ubuntu bionic-updates/universe Translation-en [94.1 kB]
取得:17 http://archive.ubuntu.com/ubuntu bionic-updates/multiverse amd64 Packages [4,180 B]
取得:18 http://archive.ubuntu.com/ubuntu bionic-updates/multiverse Translation-en [2,740 B]
取得:19 http://archive.ubuntu.com/ubuntu bionic-backports/universe amd64 Packages [2,852 B]
取得:20 http://archive.ubuntu.com/ubuntu bionic-backports/universe Translation-en [1,200 B]
パッケージリストを読み込んでいます... 完了
W: GPG エラー: https://cloud.r-project.org/bin/linux/ubuntu bionic-cran35/ InRelease: 公開鍵を利用できないため、以下の署
名は検証できませんでした: NO_PUBKEY 51716619E084DAB9
E: リポジトリ https://cloud.r-project.org/bin/linux/ubuntu bionic-cran35/ InRelease は署名されていません。
N: このようなリポジトリから更新を安全に行うことができないので、デフォルトでは更新が無効になっています。
N: リポジトリの作成とユーザ設定の詳細は、apt-secure(8) man ページを参照してください。

公開鍵の期限が切れているようなので以下のコマンドで更新をかけたところエラーとなった。

$sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 51716619E084DAB9
Executing: /tmp/apt-key-gpghome.SkyX2NUCRE/gpg.1.sh --keyserver keyserver.ubuntu.com --recv-keys 51716619E084DAB9
gpg: connecting dirmngr at '/tmp/apt-key-gpghome.SkyX2NUCRE/S.dirmngr' failed: IPC connect呼び出しに失敗しました
gpg: 鍵サーバからの受信に失敗しました: dirmngrがありません

ここからエラーに従いdirmngrをインストールしても、公開鍵の更新はできない。

解決方法

鍵をapt-key advではなく直接追加してやる。
https://github.com/Microsoft/WSL/issues/3286#issuecomment-402594992
こちらに従って、https://cloud.r-project.org/bin/linux/ubuntuの鍵を直接追加する。
以下のコマンドのコピペするだけで十分である。

curl -sL "http://keyserver.ubuntu.com/pks/lookup?op=get&search=0x51716619E084DAB9" | sudo apt-key add

このコマンド実行後、sudo apt-get updateできればそのままRの最新バージョンをインストールすることができる。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away