最近要用R語言進行生信分析,但是 mac 運算能力著實著急。剛好住的地方有一臺伺服器,自然想著能不能在伺服器上跑。本來 mac 用ssh來連線 Linux 伺服器確實很方便,相關程式碼通過 terminal 執行。但是有以下的問題:

  1. 使用者不太會用 Linux,只會用圖形介面版的 R-Studio
  2. 即使用 ssh,住的地方的伺服器缺少公網 ip,想用也沒有辦法

1. RStudio Server 介紹

R-Studio 是 R 的視覺化程式設計介面(IDE),可寫 R 程式碼並執行。現在有本地用戶端和伺服器兩種版本:

  • 本地版本全部在本地執行,不需要伺服器,依靠本地機器的效能
  • 伺服器版本可以充分利用伺服器的強大算力,其它電腦可以通過瀏覽器訪問,體驗和本地使用 R-Studio 一樣

2. 安裝過程

直接按照官網教程來就行:

1 選擇作業系統

選擇RedHat/CentOS中的RedHat9。

2 安裝R

sudo dnf install R
sudo dnf install R-devel

安裝好之後,可以在命令列中執行R:

R

R_installed 3 安裝RStudio Server

wget https://download2.rstudio.org/server/rhel9/x86_64/rstudio-server-rhel-2023.06.0-421-x86_64.rpm
sudo yum install rstudio-server-rhel-2023.06.0-421-x86_64.rpm

3. 設定與啟動

使用systemd來管理rstudio-server服務。

正在运行的状态
sudo systemctl status rstudio-server.service
● rstudio-server.service - RStudio Server
     Loaded: loaded (/usr/lib/systemd/system/rstudio-server.service; enabled; vendor preset: disabled)
     Active: active (running) since Thu 2020-10-22 20:37:02 CST; 1h 54min ago
    Process: 966 ExecStart=/usr/libexec/rstudio/bin/rserver (code=exited, status=0/SUCCESS)
   Main PID: 986 (rserver)
      Tasks: 3 (limit: 19067)
     Memory: 63.8M
        CPU: 2.198s
     CGroup: /system.slice/rstudio-server.service
             └─986 /usr/libexec/rstudio/bin/rserver

Oct 22 20:37:02 server systemd[1]: Starting RStudio Server...
Oct 22 20:37:02 server systemd[1]: Started RStudio Server.
未在运行的状态
sudo systemctl status rstudio-server.service
● rstudio-server.service - RStudio Server
     Loaded: loaded (/usr/lib/systemd/system/rstudio-server.service; enabled; vendor preset: disabled)
     Active: inactive (dead) since Thu 2020-10-22 22:34:05 CST; 1s ago
    Process: 966 ExecStart=/usr/libexec/rstudio/bin/rserver (code=exited, status=0/SUCCESS)
    Process: 6034 ExecStop=/usr/bin/killall -TERM rserver (code=exited, status=0/SUCCESS)
   Main PID: 986 (code=killed, signal=TERM)
        CPU: 2.246s

Oct 22 20:37:02 server systemd[1]: Starting RStudio Server...
Oct 22 20:37:02 server systemd[1]: Started RStudio Server.
Oct 22 22:34:05 server systemd[1]: Stopping RStudio Server...
Oct 22 22:34:05 server systemd[1]: rstudio-server.service: Succeeded.
Oct 22 22:34:05 server systemd[1]: Stopped RStudio Server.
Oct 22 22:34:05 server systemd[1]: rstudio-server.service: Consumed 2.246s CPU time.

一些systemd的命令

sudo systemctl start rstudio-server.service # 启动
sudo systemctl stop rstudio-server.service # 停止
sudo systemctl enable rstudio-server.service # 设定开机启动
sudo systemctl disable rstudio-server.service # 取消开机启动

4. 瀏覽器訪問RStudio-Server

在另外一個處於同一個網路的機器上,開啟瀏覽器,輸入http://server_ip:8787 就能訪問了。

local_login

輸入賬戶密碼後,就可以進行操作了:

web_gui

對於移動寬頻來說,雖然沒有公網ipv4地址,但是可能有公網ipv6地址。訪問http://[server_ipv6]:8787就可以了。 需要注意,一般是要把桌上型電腦直接接到移動光貓上,而不是通過路由器連線。

除了直接用移動公網ip來訪問,可以用ssh 或者 cloudflare的zerotrust 進行內網穿透。可以檢視這裡

總結

本文介紹了RStudio Server的安裝和遠端訪問。