最近要用 R 语言进行生信分析,但是 Mac 运算能力着实吃紧。刚好住的地方有一台服务器,自然想着能不能在服务器上跑。本来 Mac 用 ssh 来连接 Linux 服务器确实很方便,相关代码通过 terminal 执行。但是有以下的问题:

  1. 用户不太会用 Linux,只会用图形界面版的 RStudio
  2. 即使用 ssh,住的地方的服务器缺少公网 IP,想用也没有办法

1. RStudio Server 介绍

RStudio 是 R 的可视化编程界面(IDE),可写 R 代码并运行。现在有本地客户端和服务器两种版本:

  • 本地版本全部在本地运行,不需要服务器,依靠本地机器的性能
  • 服务器版本可以充分利用服务器的强大算力,其它电脑可以通过浏览器访问,体验和本地使用 RStudio 一样

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 的 Zero Trust 进行内网穿透。可以查看这里

5. 小结

本文介绍了 RStudio Server 的安装和远程访问。