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に対応する。
参考にしたサイト:
- Running RStudio Server with a Proxy
- RStudio Server Professional Edition 1.2.5033-1 Administration Guide