本家様 https://posit.co/products/open-source/rstudio-server/
ブラウザをインターフェースとしてRStudioを使えるようにします.
個別のwindows/macPCにRとRStudio(RStudio Desktop)を入れなくてもブラウザがあればRStudioが使える代物.
sshリモート接続越しにRStudioを使うのはいいのだが、アプリの描画がやっぱりもっさりするときがある.
このRStudioServerを使うとサーバサイド側で画面を作成して、それをhttpプロトコルで転送のためか早い.
https://posit.co/download/rstudio-server/
に各プラットホームごとにインストール手順が参照できます
ここではRockyLinux8に入れてみますので、「Fedra 34/Red Hat 8」を選びます
するとRStudio Serverパッケージのダウンロードとそのインストール方法が記載されています.
っでまず入手.
[root@rockylinux ~]# wget https://download2.rstudio.org/server/rhel8/x86_64/rstudio-server-rhel-2022.07.2-576-x86_64.rpmダウンロードしたファイルは「rstudio-server-rhel-2022.07.2-576-x86_64.rpm」でサイズは75MBでした。
次にそれをインストールします
[root@rockylinux ~]# dnf localinstall ./rstudio-server-rhel-2022.07.2-576-x86_64.rpm
:
Dec 04 04:46:29 rockylinux systemd[1]: Starting RStudio Server...
Dec 04 04:46:29 rockylinux rserver[1851]: ERROR Path to R not specified, and no module binary specified; Invalid R module (); LOGGED FROM: int main(int, char* const*) src/cpp/server/ServerMain.cpp:812
Dec 04 04:46:29 rockylinux systemd[1]: rstudio-server.service: New main PID 1851 does not exist or is a zombie.
Dec 04 04:46:29 rockylinux systemd[1]: rstudio-server.service: Failed with result 'protocol'.
Dec 04 04:46:29 rockylinux systemd[1]: Failed to start RStudio Server.
:
[root@rockylinux ~]#同時に「sqlite-libs」がインストールされて、同時に「RStudio Server」が立ち上がろうとするのですが、起動しませんでした。
原因は、RへのPATH指定とSELinux関連みたい
RへのPATH指定は「/etc/rstudio/rserver.conf」で行う. それ以外の設定は「/usr/lib/rstudio-server/bin/rserver --help」から引数を確認できる
[root@rockylinux ~]# vi /etc/rstudio/rserver.conf
# Server Configuration File
rsession-which-r=/apps/R-4.2.2/bin/R
(ログ設定)
[root@rockylinux ~]# vi /etc/rstudio/logging.conf
[*]
log-level=debug
logger-type=syslog
log-dir=/var/log/rstudio/rstudio-server
(configのテスト)
[root@rockylinux ~]# /usr/lib/rstudio-server/bin/rstudio-server test-config
[root@rockylinux ~]# systemctl restart rstudio-server.service
[root@rockylinux ~]# journalctl -u rstudio-server
:
Dec 04 05:14:08 rockylinux rserver[53414]: ERROR Error reading R script (/apps/R-4.2.2/bin/R), system error 2 (No such file or directory);(改行
LOGGED FROM: bool rstudio::core::r_util::{anonymous}::detectRLocationsUsingScript(const rstudio::core::FilePath&, rstudio::>
Dec 04 05:14:08 rockylinux rserver[53414]: ERROR Error reading R script (/apps/R-4.2.2/bin/R), system error 2 (No such file or directory);(改行
LOGGED FROM: int main(int, char* const*) src/cpp/server/ServerMain.cpp:812
:
[root@rockylinux ~]#journalctlで表示されたエラーはSElinux関係で単純にSELinuxを止めれば(/etc/selinux/configで「SELINUX=disabled」にすれば)消える. あるいは
chcon -R -t bin_t /usr/lib/rstudio-server/bin/とするとSELinuxは有効のまま消えるみたい. その上で
[root@rockylinux ~]# systemctl restart rstudio-server.serviceと実行する.
他外部へのサービスになるので
[root@rockylinux ~]# dnf install lsof -y
[root@rockylinux ~]# lsof -i -P
:
rserver 53502 rstudio-server 9u IPv4 149066 0t0 TCP *:8787 (LISTEN)
:
[root@rockylinux ~]#と8787で公開している. なのでfirewallで8787を開ける
[root@rockylinux ~]# firewall-cmd --add-port=8787/tcp --zone=public --permanent
[root@rockylinux ~]# firewall-cmd --reloadそのアドレスにアクセスすると下記のような画面が表示される

OS内のユーザ(/etc/passwd)でログインしてみると下記のようにブラウザ内で RStudio が使えます

サービスの細かい確認は「rstudio-server」で得られるみたい
[root@rockylinux ~]# /usr/lib/rstudio-server/bin/rstudio-server
Usage: rstudio-server {status|start|stop|restart|test-config|verify-installation|suspend-session|suspend-all|force-suspend-session|force-suspend-all|kill-session|kill-all|offline|online|active-sessions|version}
[root@rockylinux ~]#8787ではなく80で使いたい場合
「/etc/rstudio/rserver.conf」に「www-port=80」を追記して「systemctl restart rstudio-server.service」を実施
firewallの再設定も忘れずに
install.packages("devtools",Ncpus=3)とすると3倍速くなる.
「libicui18n.so.58がない」とかでエラーが出る場合は anaconda がロードされているから.
anacondaにある「「libicui18n.so.58」をLD_LIBRARY_PATHとかで通せば行けるかもしれないが、、path環境からanacondaを抜いて作ったほうがいいかも.
export PATH=/apps/R-4.1.1/bin:/usr/bin:/usr/sbinとしてRを起動後「install.packages("devtools",Ncpus=3)」なら行ける