どこかに向かうらしい話

迷走エンジニアの放浪記

R / Rstudio server / rstan をCentos7にインストール

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のログイン画面が表示される。

http://10.100.100.100:8787/

さきほどOS上に作成したユーザuser01のユーザ名とパスワードでログインができる。

Rパッケージの導入

導入の準備

tidyverserstanを導入するために必要となるパッケージをインストールする。

まずは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/Makevarsuser01ユーザで/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のログイン画面が表示される。

http://10.100.100.100:8787/

さきほど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