R RStudio インストール

January 19, 2020 – 4:36 pm

「統計学の計算及びグラフィックのためのソフトウェア」として定評のある R言語、並びに、この言語のIDE(統合開発環境)である RStudioを Linux(OS:CentOS)上にインストールした。

統計学を学ぶ必要は理解していた。いつか、きちんと学ばねばと思っていたところ。R言語を学ぶことを通じて統計学の一端が知れればということで、我がLinuxサーバにインストールし、開発環境を整えることにした。

一連のインストール作業をメモしておいた。

R のインストール

# yum install --enablerepo=epel -y R

コマンド R 実行で正常にインストールされていること、バージョンを確認

$ R

R version 3.6.0 (2019-04-26) -- "Planting of a Tree"
Copyright (C) 2019 The R Foundation for Statistical Computing
Platform: x86_64-redhat-linux-gnu (64-bit)

R is free software and comes with ABSOLUTELY NO WARRANTY.
You are welcome to redistribute it under certain conditions.
Type 'license()' or 'licence()' for distribution details.

  Natural language support but running in an English locale

R is a collaborative project with many contributors.
Type 'contributors()' for more information and
'citation()' on how to cite R or R packages in publications.

Type 'demo()' for some demos, 'help()' for on-line help, or
'help.start()' for an HTML browser interface to help.
Type 'q()' to quit R.

> 

RStudioのインストール
rstudio-serverの rpm をダウンロード

# wget https://download2.rstudio.org/server/centos6/x86_64/rstudio-server-rhel-1.2.5033-x86_64.rpm
--2020-01-16 11:27:52--  https://download2.rstudio.org/server/centos6/x86_64/rstudio-server-rhel-1.2.5033-x86_64.rpm
Resolving download2.rstudio.org (download2.rstudio.org)... 2600:9000:2142:6a00:6:4ff5:2540:93a1, 2600:9000:2142:7c00:6:4ff5:2540:93a1, 2600:9000:2142:1000:6:4ff5:2540:93a1, ...
Connecting to download2.rstudio.org (download2.rstudio.org)|2600:9000:2142:6a00:6:4ff5:2540:93a1|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 49182160 (47M) [application/x-redhat-package-manager]
Saving to: ‘rstudio-server-rhel-1.2.5033-x86_64.rpm’

100%[==================================================>] 49,182,160  18.0MB/s   in 2.6s   

2020-01-16 11:27:56 (18.0 MB/s) - ‘rstudio-server-rhel-1.2.5033-x86_64.rpm’ saved [49182160/49182160]

RStudio-server を yumインストール

# yum install rstudio-server-rhel-1.2.5033-x86_64.rpm
Loaded plugins: fastestmirror
Examining rstudio-server-rhel-1.2.5033-x86_64.rpm: rstudio-server-1.2.5033-1.x86_64
Marking rstudio-server-rhel-1.2.5033-x86_64.rpm to be installed
Resolving Dependencies
--> Running transaction check
---> Package rstudio-server.x86_64 0:1.2.5033-1 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

============================================================================================
 Package           Arch      Version          Repository                               Size
============================================================================================
Installing:
 rstudio-server    x86_64    1.2.5033-1       /rstudio-server-rhel-1.2.5033-x86_64    341 M

Transaction Summary
============================================================================================
Install  1 Package

Total size: 341 M
Installed size: 341 M
Is this ok [y/d/N]: y
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : rstudio-server-1.2.5033-1.x86_64                                         1/1 
groupadd: group 'rstudio-server' already exists
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 Thu 2020-01-16 11:29:35 JST; 1s ago
  Process: 28326 ExecStart=/usr/lib/rstudio-server/bin/rserver (code=exited, status=0/SUCCESS)
 Main PID: 28327 (rserver)
   CGroup: /system.slice/rstudio-server.service
           ├─28327 /usr/lib/rstudio-server/bin/rserver
           └─28329 /usr/lib64/R/bin/exec/R --slave --vanilla -e cat(paste(R.home('home'),R.home('share'),R.home('include'),R.home('doc'),sep=':'))

Jan 16 11:29:35 localhost.localdomain systemd[1]: Starting RStudio Server...
Jan 16 11:29:35 localhost.localdomain systemd[1]: Started RStudio Server.
  Verifying  : rstudio-server-1.2.5033-1.x86_64                                         1/1 

Installed:
  rstudio-server.x86_64 0:1.2.5033-1                                                        

Complete!

RStudio Serverの動作環境を整える
以上で、R 本体、そしてRStudio Serverは、我が家のLinux Server(OS:CentOS7.7)上に展開、員sトールされた。これを、同一Linux Server上で動作させているWebServer(APache)の背後で展開させ、Webブラウザ上で使用する。

なお、現在動作している Apacheの versionは以下:

$ httpd -V
Server version: Apache/2.4.38 (IUS)
Server built:   Mar 11 2019 10:30:47
Server's Module Magic Number: 20120211:83
Server loaded:  APR 1.5.2, APR-UTIL 1.5.4
Compiled using: APR 1.5.2, APR-UTIL 1.5.4
Architecture:   64-bit
Server MPM:     event
  threaded:     yes (fixed thread count)
    forked:     yes (variable process count)
Server compiled with....
 -D APR_HAS_SENDFILE
 -D APR_HAS_MMAP
 -D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)
 -D APR_USE_SYSVSEM_SERIALIZE
 -D APR_USE_PTHREAD_SERIALIZE
 -D SINGLE_LISTEN_UNSERIALIZED_ACCEPT
 -D APR_HAS_OTHER_CHILD
 -D AP_HAVE_RELIABLE_PIPED_LOGS
 -D DYNAMIC_MODULE_LIMIT=256
 -D HTTPD_ROOT="/etc/httpd"
 -D SUEXEC_BIN="/usr/sbin/suexec"
 -D DEFAULT_PIDLOG="/run/httpd/httpd.pid"
 -D DEFAULT_SCOREBOARD="logs/apache_runtime_status"
 -D DEFAULT_ERRORLOG="logs/error_log"
 -D AP_TYPES_CONFIG_FILE="conf/mime.types"
 -D SERVER_CONFIG_FILE="conf/httpd.conf

WebServer上のVirtual Hostの設定ファイル(/etc/httpd/conf.d/vhost.conf)を修正。
以下を追加:

<VirtualHost *:80>
     ServerName rstudio.yamasnet.com
     RewriteEngine On
     RewriteCond %{HTTPS} off
     RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
</VirtualHost>

<VirtualHost *:443>
     ServerName rstudio.yamasnet.com
     ServerAdmin webmaster@yamasnet.com
     ProxyRequests Off
     ProxyPreserveHost On

     <Proxy http://localhost:8787/>
         Require all denied
         Require ip 2405:6581:c740::/48
         Require ip ::1
     </Proxy>

     RewriteEngine On
     RewriteCond %{HTTP:Upgrade} =websocket
     RewriteRule /(.*)  ws://localhost:8787/$1 [P,L]
     RewriteCond %{HTTP:Upgrade} !=websocket
     RewriteRule /(.*)  http://localhost:8787/$1 [P,L]
     ProxyPass / http://localhost:8787/
     ProxyPassReverse / http://localhost:8787/     

   SSLEngine on
     SSLHonorCipherOrder on     
   Header set Strict-Transport-Security "max-age=31536000; includeSubDomains"
     SSLProtocol -All +TLSv1 +TLSv1.1 +TLSv1.2
     SSLCipherSuite HIGH:MEDIUM:!aNULL:!MD5
     SSLCertificateFile /etc/letsencrypt/live/yamasnet.com/cert.pem
     SSLCertificateKeyFile /etc/letsencrypt/live/yamasnet.com/privkey.pem
     SSLCertificateChainFile /etc/letsencrypt/live/yamasnet.com/chain.pem

     Protocols h2 http/1.1

</VirtualHost>

因みに、この設定においては、ipアクセス制限をしており、サーバーと同一LAN内からのアクセスとサーバー自身、localhost からのアクセに制限している(セキュリティ上の措置)。

Apacheを再起動し、上記の設定を有効にする:

# systemctl restart httpd

認証(User/Password)
R-Studioにアクセスすると、User/Passwordの入力が求められる。R-Studio(Linux版?)は、PAMの仕組みに準拠しており、/etc/pam.d配下にはService別の設定ファイルが置かれるが、ここにR-Studioをインストールすると特有のPam設定ファイルが生成されている。

Linux の User/Passwordと共通の認証メカニズムを用いる場合、次のようにlogin用のPamファイルをcopyすれば良い。

#cd /etc/pam.d
#copy login rstudio

RStudio の作業エリアは、User Accountに対応する。

参考にしたサイト

  


Post a Comment