現在のStanの計算は、WindowsよりLinuxの方が3倍ぐらい速いみたい(モデルにもよるけど)。Windowsの人はWSLをインストールして実行せよ、そしてRStudioサーバを使って開発するといいよ、とのこと。 https://t.co/6dpU7USlOh
— Kentaro Matsuura (@hankagosa) 2020年4月25日
ということで、インストールしてみた。
WSLのインストールとUbuntuの入手。
管理者権限で起動したPowerShell上でWSLをインストール。
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
再起動してMicrosoft StoreからUbuntu 18.04 LTSをインストール。
- Ubuntu 18.04 LTS を入手 - Microsoft Store ja-JP
- 参考:Install Windows Subsystem for Linux (WSL) on Windows 10 | Microsoft Docs
- 参考:Large Cmdstan performance differences Windows vs. Linux - Developers - The Stan Forums
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
- 参考:Download RStudio Server for Debian & Ubuntu - RStudio
- 参考:Large Cmdstan performance differences Windows vs. Linux - Developers - The Stan Forums
- 参考:How to use RStudio Server for Ubuntu on Windows 10 - Lead and Paper - Medium
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
する。
追記
加賀谷先生の解説も大変参考になります。ありがとうございます。
ちょっと前のですが、WSLでRStudio server の手順、僕も書いたのがあるので御参考になれば。Tidyverse入れるとき、ちょっとトリッキーなところがありました。https://t.co/Wwq1RBsbDm
— Katsushi Kagaya🌊 (@katzkagaya) 2020年4月25日
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