Rstanのインストールがgcc関連でハマりやすいことをあり備忘録として記録。
ついでになるべく環境を汚したくないので、独立したVM環境にRstudio Serverも導入して使う。 (Rstudio Serverに関する設定や使い方についてはここでは触れません)
環境
主要な環境は以下の通り。
- CentOS Linux release 7.8.2003 (Core)
- R 3.6.0
- Rstudio Server 1.3.1093
- tidyverse 1.3.0
- rstan 2.21.2
- bayesplot 1.7.2
- ggmcmc 1.5.0
基本方針
- Rはパッケージからインストール。
- Rstudio Serverは原則公式サイトに従い、安定版(?)をインストールする。
https://rstudio.com/products/rstudio/download-server/redhat-centos/ - 設定は原則
rootで行う。 - Rserver studioのユーザは
user01とする。 - インストール先のIPアドレスは
10.100.100.100とする。各自の環境に合わせて適宜読みかえること。
インストール
ユーザuser01の作成
ユーザを作成する。
# groupadd rserver # useradd -g rserver user01
パスワードも変えておく。
# passwd user01
epel-releaseのインストール
R等のインストールに重要なepel-releaseをインストールする。
# yum install -y epel-release
R のインストール
EPELよりそのままインストール。
# yum install -y R
Rstudio Serverのインストール
公式サイトの記載にのっとりインストールするが、wgetではなくcurlを用いる。
2020/11/2時点では以下のURLだった。
# curl -O https://download2.rstudio.org/server/centos6/x86_64/rstudio-server-rhel-1.3.1093-x86_64.rpm # yum install -y rstudio-server-rhel-1.3.1093-x86_64.rpm
rstudio-serverのサービスのステータスがactiveになっていることを確認する。
# systemctl status rstudio-server.service
ブラウザから以下のURLにアクセスすることで、Rstudio studioのログイン画面が表示される。
さきほどOS上に作成したユーザuser01のユーザ名とパスワードでログインができる。
Rパッケージの導入
導入の準備
tidyverseとrstanを導入するために必要となるパッケージをインストールする。
まずはdevtoolset-8を入れる。
# yum install -y centos-release-scl # yum install -y devtoolset-8
devtoolset-8を有効化し、/etc/profileの末尾にも有効化の処理が走るよう追記する。
# scl enable devtoolset-8 bash # echo "" >> /etc/profile # echo "scl enable devtoolset-8 bash" >> /etc/profile
その他必要なパッケージもインストールする。
# yum install -y v8-devel curl-devel libcurl-devel openssl-devel libxml2-devel tbb-devel
パスを通す。
さらに/etc/profileにも念のため追記する。
# export LD_LIBRARY_PATH=/usr/local/lib:/usr/lib:/usr/local/lib64:/usr/lib64 # echo "" >> /etc/profile # echo "export LD_LIBRARY_PATH=/usr/local/lib:/usr/lib:/usr/local/lib64:/usr/lib64" >> /etc/profile
tidyverseのインストール
RのREPLを起動し、対話モードにする。
# R
tidyverseをインストールする。
> install.packages("tidyverse", repos = "https://cloud.r-project.org/")
対話モードから抜ける。
> q()
rstanのインストール
rootユーザで/root/.R/Makevars、user01ユーザで/home/user01/.R/Makevarsを作成する。
ファイルの中身は以下の通り。
CXX14FLAGS=-O3 -march=native -mtune=native -fPIC CXX14=/opt/rh/devtoolset-8/root/usr/bin/g++
rstanをインストールする。
> install.packages("rstan", repos = "https://cloud.r-project.org/", dependencies = TRUE)
動作確認
ブラウザから以下のURLにアクセスすることで、Rstudio studioのログイン画面が表示される。
さきほどOS上に作成したユーザuser01のユーザ名とパスワードでログインができる。
以下のコードで動作確認を行う。
> library(tidyverse)
> library(rstan)
> x <- rbinom(n = 100, size = 20, prob = 0.8)
binomial_test <- "
data {
int N;
int n;
int x[n];
}
parameters {
real<lower=0, upper=1> p;
}
model {
x ~ binomial(N, p);
}"
> d <- list(N = 20, x = x, n = length(x))
> fit <- stan(
model_code = binomial_test ,
data= d)
> stan_hist(fit)
その他パッケージを入れる
ここでは以下2つをいれる。
> install.packages('ggmcmc')
> install.packages('bayesplot')
最後に
rstanのインストールは結局のところ、以下を読むのが早いです。
https://github.com/stan-dev/rstan/wiki/RStan-Getting-Started-(Japanese))
https://github.com/stan-dev/rstan/wiki/RStan-Getting-Started
Rstudio Serverのインストールはここを見ましょう。
https://rstudio.com/products/rstudio/download-server/redhat-centos/
動作確認のコードは以下から引用させていただきました。
https://qiita.com/kumalpha/items/158d0fdfa054da602e1b