#author("2022-12-03T20:30:58+00:00","default:sysosa","sysosa") #author("2022-12-03T20:33:59+00:00","default:sysosa","sysosa") 本家様 [[https://posit.co/products/open-source/rstudio-server/>+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/>+https://posit.co/download/rstudio-server/]]に各プラットホームごとにインストール手順が参照できます ここではRockyLinux8に入れてみますので、「Fedra 34/Red Hat 8」を選びます するとRStudio Serverパッケージのダウンロードとそのインストール方法が記載されています. っでまず入手. #code(nonumber){{ [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でした。 次にそれをインストールします #code(nonumber){{ [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」から引数を確認できる #code(nonumber){{ [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」にすれば)消える. あるいは #code(nonumber){{ chcon -R -t bin_t /usr/lib/rstudio-server/bin/ }} とするとSELinuxは有効のまま消えるみたい. その上で #code(nonumber){{ [root@rockylinux ~]# systemctl restart rstudio-server.service }} と実行する. 他外部へのサービスになるので #code(nonumber){{ [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を開ける #code(nonumber){{ [root@rockylinux ~]# firewall-cmd --add-port=8787/tcp --zone=public --permanent [root@rockylinux ~]# firewall-cmd --reload }} そのアドレスにアクセスすると下記のような画面が表示される &ref(2022y12m04d_052801628.png,nolink,80%); OS内のユーザ(/etc/passwd)でログインしてみると下記のようにブラウザ内で RStudio が使えます &ref(2022y12m04d_052907973.png,nolink,70%); サービスの細かい確認は「rstudio-server」で得られるみたい #code(nonumber){{ [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 ~]# }} ***メモ [#b1d13c02] 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を抜いて作ったほうがいいかも. #code(nonumber){{ export PATH=/apps/R-4.1.1/bin:/usr/bin:/usr/sbin }} としてRを起動後「install.packages("devtools",Ncpus=3)」なら行ける