#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)」なら行ける
1

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS