CentOS 7にRの統合開発環境『RStuido』をインストールしてブラウザからアクセスする

データ分析や統計処理で人気のあるR言語だが、この言語にブラウザからアクセスできる統合開発環境『RStudio』というものがあるらしいので、CentOS 7にインストールしてみる。

1. 事前準備

事前準備として、Rstudioを動作するためのユーザを作成・スイッチする。 この際、sudoを行える必要があるため「wheel」グループに参加させておく。

useradd rstudio
usermod -aG wheel rstudio
echo 'P@ssw0rd' | passwd --stdin rstudio
su rstudio

以下のコマンドで、R自体のインストールを行う。

sudo yum install -y epel-release
sudo yum install -y R

デモ用に各種パッケージの追加。

sudo yum groupinstall -y "Development Tools"
sudo -i R -e 'install.packages("quantmod",repos="http://cran.us.r-project.org")'
sudo -i R -e 'install.packages("txtplot",repos="http://cran.us.r-project.org")'

2.『RStudio』のインストール

次に、以下のコマンドでRStudioのインストールを行う。

sudo yum install -y --nogpgcheck https://download2.rstudio.org/rstudio-server-rhel-1.0.44-x86_64.rpm
[rstudio@BS-PUB-CENT7-02 root]$ sudo yum install --nogpgcheck https://download2.rstudio.org/rstudio-server-rhel-1.0.44-x86_64.rpm
[sudo] password for rstudio:
読み込んだプラグイン:fastestmirror, rhnplugin
This system is receiving updates from RHN Classic or Red Hat Satellite.
rstudio-server-rhel-1.0.44-x86_64.rpm                                   |  39 MB  00:00:02
/var/tmp/yum-root-iZ8zd2/rstudio-server-rhel-1.0.44-x86_64.rpm を調べています: rstudio-server-1.0.44-1.x86_64
/var/tmp/yum-root-iZ8zd2/rstudio-server-rhel-1.0.44-x86_64.rpm をインストール済みとして設定しています
依存性の解決をしています
--> トランザクションの確認を実行しています。
---> パッケージ rstudio-server.x86_64 0:1.0.44-1 を インストール
--> 依存性解決を終了しました。

依存性を解決しました

===============================================================================================
 Package             アーキテクチャー
                                 バージョン      リポジトリー                             容量
===============================================================================================
インストール中:
 rstudio-server      x86_64      1.0.44-1        /rstudio-server-rhel-1.0.44-x86_64      310 M

トランザクションの要約
===============================================================================================
インストール  1 パッケージ

合計容量: 310 M
インストール容量: 310 M
Is this ok [y/d/N]: y
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  インストール中          : rstudio-server-1.0.44-1.x86_64                                 1/1
groupadd: グループ 'rstudio-server' は既に存在します
rsession: no process found
Created symlink from /etc/systemd/system/multi-user.target.wants/rstudio-server.service to /etc/systemd/system/rstudio-server.service.
● rstudio-server.service - RStudio Server
   Loaded: loaded (/etc/systemd/system/rstudio-server.service; enabled; vendor preset: disabled)
   Active: active (running) since 日 2016-11-27 18:46:25 JST; 1s ago
  Process: 12828 ExecStart=/usr/lib/rstudio-server/bin/rserver (code=exited, status=0/SUCCESS)
 Main PID: 12829 (rserver)
   CGroup: /system.slice/rstudio-server.service
           mq12829 /usr/lib/rstudio-server/bin/rserver

11月 27 18:46:25 BS-PUB-CENT7-02.blacknon.local systemd[1]: Starting RStudio Server...
11月 27 18:46:25 BS-PUB-CENT7-02.blacknon.local systemd[1]: Started RStudio Server.
  検証中                  : rstudio-server-1.0.44-1.x86_64                                 1/1

インストール:
  rstudio-server.x86_64 0:1.0.44-1

完了しました!
[rstudio@BS-PUB-CENT7-02 root]$ systemctl status rstudio-server.service
● rstudio-server.service - RStudio Server
   Loaded: loaded (/etc/systemd/system/rstudio-server.service; enabled; vendor preset: disabled)
   Active: active (running) since 日 2016-11-27 18:46:25 JST; 22s ago
  Process: 12828 ExecStart=/usr/lib/rstudio-server/bin/rserver (code=exited, status=0/SUCCESS)
 Main PID: 12829 (rserver)
   CGroup: /system.slice/rstudio-server.service
           mq12829 /usr/lib/rstudio-server/bin/rserver

11月 27 18:46:25 BS-PUB-CENT7-02.blacknon.local systemd[1]: Starting RStudio Server...
11月 27 18:46:25 BS-PUB-CENT7-02.blacknon.local systemd[1]: Started RStudio Server.

ブラウザから「http://ホスト名orIPアドレス:8787」にアクセスすることで、RStudioにアクセスできる。
ユーザは先ほど作成した「rstudio」でログインできる。

実際に動かしてみよう。
以下のコマンドをRStudioのコンソール上で実行し、グラフを出力させてみる。

library('quantmod')
data <- new.env()
getSymbols('RHT', data)
plot(data$RHT)

R言語を実行する環境はサーバなので、メモリが少ないクライアントで実行したくない時なんかに有用だろう。