Triad sou.

WSLをインストールしてRStudio Serverを動かしてみた

ということで、インストールしてみた。


WSLのインストールとUbuntuの入手。
管理者権限で起動したPowerShell上でWSLをインストール。

Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux

再起動してMicrosoft StoreからUbuntu 18.04 LTSをインストール。


Ubuntuのターミナルを起動&初期設定し、Rの最新版をCRANからインストールするように設定(2020/04/25現在ではまだR-3.6.3だった、2020/04/29にR-4.0.0のバイナリが配置されたので更新)。

echo -e "\n## For R package"  | sudo tee -a /etc/apt/sources.list
echo "deb https://cloud.r-project.org/bin/linux/ubuntu $(lsb_release -cs)-cran40/" | sudo tee -a /etc/apt/sources.list
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys E298A3A825C0D65DFD57CBB651716619E084DAB9

3行目が失敗する場合は以下もご参照のこと。


make, g++, r-baseをインストール。

sudo apt update
sudo apt install make g++ r-base


Rstudio Serverをインストール(適宜最新のファイルに置き換えると良いかも; 2020/5/22に1.3.959に更新されていた)。

sudo apt-get install gdebi-core
wget https://download2.rstudio.org/server/bionic/amd64/rstudio-server-1.3.959-amd64.deb
sudo gdebi rstudio-server-1.3.959-amd64.deb


RStudio Severを起動。

sudo rstudio-server start

ブラウザで開く。

http://localhost:8787/


WindowsのCドライブは/mnt/c/にマウントされている。

パッケージ作成環境構築

パッケージ作成環境構築のため、devtoolsなどを入れておきたかったが、WSL上ではxml2がうまくインストールできない事があるようなので、対処法をメモしておく。
ターミナル上で、libxml2-dev, libssl-dev, libcurl4-openssl-devをインストールしておく。

sudo apt install libxml2-dev libssl-dev libcurl4-openssl-dev

RStudioでdevtoolsと必要パッケージを入れる。

install.package("devtools")

devtoolsの関連パッケージのインストールに失敗する場合は、エラーメッセージ

mv: cannot move '/usr/lib/R/library/00LOCK-ps/00new/xxxx' to
'/usr/lib/R/library/xxxx': Permission denied

が出ている場合は、

Sys.setenv(R_INSTALL_STAGED = FALSE)

を設定した上で、再度インストールする。
終わったら一応設定を戻しておく。

Sys.setenv(R_INSTALL_STAGED = TRUE)

または、Ubuntuに何かのパッケージが足りない場合は、エラーメッセージを探してsudo apt install package-nameする。

追記

加賀谷先生の解説も大変参考になります。ありがとうございます。



Rをソースからビルドしてみよう

多分そのままだとエラーが出たためsource.listを編集しておく。

sudo vi /etc/apt/sources.list

ファイルを開いた後に

:%s/# deb-src/deb-src/
:wq


ビルドに必要なものを入れておく。

sudo apt update
sudo apt build-dep r-base

バージョン番号を変数に代入しておき、ソースファイルをダウンロードして展開。

export R_VERSION=4.0.0
curl -O https://cran.rstudio.com/src/base/R-4/R-${R_VERSION}.tar.gz
tar -xzvf R-${R_VERSION}.tar.gz
cd R-${R_VERSION}

ビルドとインストール。

./configure \
    --prefix=/opt/R/${R_VERSION} \
    --enable-memory-profiling \
    --enable-R-shlib \
    --with-blas \
    --with-lapack
make
sudo make install

インストールの結果確認。

/opt/R/${R_VERSION}/bin/R --version

シンボリックリンクを貼っておく。

sudo ln -s /opt/R/${R_VERSION}/bin/R /usr/local/bin/R
sudo ln -s /opt/R/${R_VERSION}/bin/Rscript /usr/local/bin/Rscript


RStudio Serverを一旦止める。

sudo rstudio-server stop

設定ファイルを編集する。

sudo vi /etc/rstudio/rserver.conf

ファイルを開いた後にiで挿入モードにし

rsession-which-r=/usr/local/lib/R

を追記、escで挿入モードを抜けて、:wqで保存して閉じる。
RStudio Serverを起動してブラウザから開く。

sudo rstudio-server start


うまくいかない時はリセットしたりして対応した。

sudo rstudio-server force-suspend-all
sudo rstudio-server stop
rm -rf /home/user/.rstudio
sudo rstudio-server start