WSL2にRStudioサーバーをインストール

# はじめに

Windows に RStudio を入れて作業していたが、エンコーディング問題などのエラーが発生したため、いっそのことと思い前から考えていた WSL2 での環境構築を行った。なお、WSL2 とディストリビューション（ Ubuntu 20.04 LTS ）はインストール済みである。
はじめは [Using RStudio Server in Windows WSL2](https://support.rstudio.com/hc/en-us/articles/360049776974-Using-RStudio-Server-in-Windows-WSL2) を参考にしていたがエラーを吐いたため、途中から [Ubuntu Packages For R - Brief Instructions](https://cran.r-project.org/bin/linux/ubuntu/) も参考にした。自分と同じ状況の方がいるかもしれないので、少し冗長にはなるがエラーを含めて私の踏んだ手順を時系列に沿って書く。

# 前提条件の確認

WSL2 でのセットアップが推奨されている。その際、Window 10 (バージョン2004、ビルド19041以降）が必要らしい。実際は Windows アップデートは必要ない（※）が、いい機会と思いバージョン20H2、ビルド19042にアップデート。Window のバージョンは `Windows キー` + `R` を押して、`winver` で確認できる。
※[「WSL 2」が「Windows 10 バージョン 1903/1909」でも利用可能に ～Microsoftが旧OSに移植](https://forest.watch.impress.co.jp/docs/news/1272017.html)によると、2020年8月から Windows 10（バージョン1903/1909）でも WSL2 を扱うことができるようになったとのこと。実際私も Windows 10（バージョン1909、ビルド18363）で WSL2 は扱えていた。

# WSL、Linux ディストリビューションのセットアップ

上記 ※ に書いたように Windows アップデート前に WSL2 がもともと使えていたが、Windows アップデート後にエラー（どんなエラーだったか残すの忘れてた）が発生して起動できなくなった。（アップデートしなけりゃよかった。。。）
一度ディストリビューションをアンインストールし、インストールし直そうとするも以下エラーを吐いてうまくいかない。

> Installing, this may take a few minutes...
WslRegisterDistribution failed with error: 0x80070002
Error: 0x80070002 ??????????????????

一度 WSL2 の設定はしているが、[Using RStudio Server in Windows WSL2](https://support.rstudio.com/hc/en-us/articles/360049776974-Using-RStudio-Server-in-Windows-WSL2) の WSL Setup にしたがって再度セットアップしたところ、起動できた。（「Linux 用 Windows サブシステム」、「仮想マシン プラットフォーム」はもともと有効になっていたため、おそらく最新の WSL2 Linux カーネルをインストールしたことで解消したと推測。）

# RStudioサーバーのセットアップ（失敗）

以降は [Using RStudio Server in Windows WSL2](https://support.rstudio.com/hc/en-us/articles/360049776974-Using-RStudio-Server-in-Windows-WSL2) にしたがってコマンドを実行した。この章は結果的に失敗するので、成功パターンを知りたい場合は飛ばして次の章「RStudioサーバーのセットアップ（成功）」へ。

- WSL (Ubuntu-20.04) を起動
（正しいディストリビューションを立ち上げているかは `cat /etc/os-release` で確認できる。）

- Linux パッケージを最新にする

```
$ sudo apt-get update
$ sudo apt-get upgrade -y
```

- apt 資格情報を追加

```
$ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys E298A3A825C0D65DFD57CBB651716619E084DAB9
$ sudo add-apt-repository 'deb https://cloud.r-project.org/bin/Linux/ubuntu focal-cran40/'
```

`$ sudo add-apt-repository 'deb https://cloud.r-project.org/bin/Linux/ubuntu focal-cran40/'` で以下エラー。

> Hit:1 http://archive.ubuntu.com/ubuntu focal InRelease
Ign:2 https://cloud.r-project.org/bin/Linux/ubuntu focal-cran40/ InRelease
Hit:3 http://archive.ubuntu.com/ubuntu focal-updates InRelease
Hit:4 http://security.ubuntu.com/ubuntu focal-security InRelease
Hit:5 http://archive.ubuntu.com/ubuntu focal-backports InRelease
Err:6 https://cloud.r-project.org/bin/Linux/ubuntu focal-cran40/ Release
  404  Not Found [IP: 13.35.70.34 443]
Reading package lists... Done
E: The repository 'https://cloud.r-project.org/bin/Linux/ubuntu focal-cran40/ Release' does not have a Release file.
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.



その後いろいろ試みたがうまくいかなかったため、一旦 Ubuntu-20.04 をリセットして、[Ubuntu Packages For R - Brief Instructions](https://cran.r-project.org/bin/linux/ubuntu/) を参考にして再度セットアップを試みた。

# RStudioサーバーのセットアップ（成功）

R のインストールを [Ubuntu Packages For R - Brief Instructions](https://cran.r-project.org/bin/linux/ubuntu/) にしたがって、RStudioサーバーをインストールを [Using RStudio Server in Windows WSL2](https://support.rstudio.com/hc/en-us/articles/360049776974-Using-RStudio-Server-in-Windows-WSL2) にしたがって進める。

- apt 資格情報を追加

```
# update indices
$ sudo apt update -qq
# install two helper packages we need
$ sudo apt install --no-install-recommends software-properties-common dirmngr
# import the signing key (by Michael Rutter) for these repo
$ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys E298A3A825C0D65DFD57CBB651716619E084DAB9
# add the R 4.0 repo from CRAN -- adjust 'focal' to 'groovy' or 'bionic' as needed
$ sudo add-apt-repository "deb https://cloud.r-project.org/bin/linux/ubuntu $(lsb_release -sc)-cran40/"

$ sudo apt install --no-install-recommends r-base
```

`$ sudo add-apt-repository "'deb https://cloud.r-project.org/bin/linux/ubuntu '$(lsb_release -sc)'-cran40/'"` と参考記事には書いてあるが、このままでは [Error: ''deb https://cloud.r-project.org/bin/linux/ubuntu focal-cran40/'' invalid] というエラーが出る。上記コマンドのように  __' （シングルコーテーション）をすべて取り除いて実行__すれば通る。無事 apt 資格情報を追加できたので、[Using RStudio Server in Windows WSL2](https://support.rstudio.com/hc/en-us/articles/360049776974-Using-RStudio-Server-in-Windows-WSL2) の 4 に戻って進める。

- R と必要なパッケージをインストール

```
$ sudo apt install -y r-base r-base-core r-recommended r-base-dev gdebi-core build-essential libcurl4-gnutls-dev libxml2-dev libssl-dev
```

- RStudioサーバーのインストール（安定版かつ最新）

```
$ wget https://rstudio.org/download/latest/stable/server/bionic/rstudio-server-latest-amd64.deb
$ sudo gdebi rstudio-server-latest-amd64.deb
```

- RStudioサーバーの起動

```
$ sudo rstudio-server start
```

- [http://localhost:8787](http://localhost:8787) にアクセス

以下画面が立ち上げれば成功。
![RStudioServer.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/769545/f31b1c4c-9fc9-7041-d9c6-de9018a7fca7.png)