无 Root 权限在 HPC 共享集群部署 RStudio Server:完整安装指南
本文记录如何在 HPC 共享集群中解包 RStudio Server 安装包,并通过一系列设置,在无 Root 权限下运行。
1. 下载 RStudio Server RPM
我的机器为 AlmaLinux 9,下面以此服务器为例演示,其余版本可以去官网查询。
Posit 提供适用于 RHEL 9 的官方 RPM 安装包。AlmaLinux 9 可以使用对应构建。
创建目录:
1 2
| mkdir -p ~/opt/rstudio-server cd ~/opt/rstudio-server
|
下载:
1 2
| wget -O rstudio-server.rpm \ https://download2.rstudio.org/server/rhel9/x86_64/rstudio-server-rhel-2026.10.0-233-x86_64.rpm
|
2. 无 root 解包
由于没有 sudo,不能使用常规的:
1
| sudo dnf install rstudio-server.rpm
|
但可以直接解压 RPM 文件。
2.1 使用 rpm2cpio + cpio 解包
1 2 3 4
| mkdir -p ~/opt/rstudio-server/extracted cd ~/opt/rstudio-server/extracted
rpm2cpio ../rstudio-server.rpm | cpio -idm
|
安装方式
RPM 解压是无 root 的替代安装方式,不是官方标准安装流程。它不会执行 RPM 安装脚本,也不会自动创建系统目录或注册 systemd 服务。不同版本可能仍存在内部资源路径问题。
2.2 验证安装
1 2 3 4 5
| export RSTUDIO_HOME="$HOME/opt/rstudio-server/extracted/usr/lib/rstudio-server" export RSERVER="$RSTUDIO_HOME/bin/rserver"
ls -lh "$RSERVER" ls -lh "$RSTUDIO_HOME/bin/rsession"
|
检查依赖:
1
| ldd "$RSERVER" | grep 'not found'
|
正常情况下没有输出。
3. 配置 Conda R 环境
这是本次安装最关键的部分之一。我们的 R 安装在 Conda 环境中,Conda 也是解决部分依赖的关键环境。
激活已有环境:
确认:
1 2 3 4
| which R R --version R RHOME echo "$CONDA_PREFIX"
|
设置环境变量:
1 2 3 4 5 6
| export RSTUDIO_HOME="$HOME/opt/rstudio-server/extracted/usr/lib/rstudio-server" export RSERVER="$RSTUDIO_HOME/bin/rserver"
export R_BIN="$(command -v R)" export R_HOME="$(R RHOME)"
|
一系列动态链接库也需要指向 Conda 环境:
1
| export LD_LIBRARY_PATH="$CONDA_PREFIX/lib:$R_HOME/lib:${LD_LIBRARY_PATH:-}"
|
4. 创建无 root 用户级运行目录
RStudio Server 默认使用系统路径:
1 2
| /var/run/rstudio-server /var/lib/rstudio-server
|
普通用户不能在这些目录写入。
因此需要创建用户级目录:
1 2 3 4 5 6 7 8
| mkdir -p "$HOME/.config/rstudio-server" mkdir -p "$HOME/.local/run/rstudio-server" mkdir -p "$HOME/.local/share/rstudio-server" mkdir -p "$HOME/.local/share/rstudio/log"
chmod 700 "$HOME/.config/rstudio-server" chmod 700 "$HOME/.local/run/rstudio-server" chmod 700 "$HOME/.local/share/rstudio-server"
|
两类目录不要混淆:
| 系统默认路径 |
对应用途 |
用户级替代 |
/var/run/rstudio-server |
临时运行状态、PID 等 |
~/.local/run/rstudio-server |
/var/lib/rstudio-server |
持久化数据、数据库等 |
~/.local/share/rstudio-server |
5. 配置 RStudio Server
5.1 创建 rserver.conf
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| cat > "$HOME/.config/rstudio-server/rserver.conf" <<EOF server-user=$(id -un) auth-none=1
www-address=0.0.0.0 www-port=8254
server-daemonize=0
rsession-which-r=$R_BIN
server-data-dir=$HOME/.local/run/rstudio-server server-pid-file=$HOME/.local/run/rstudio-server/rserver.pid
database-config-file=$HOME/.config/rstudio-server/database.conf EOF
|
端口配置
特别注意 www-address 要设置为 0.0.0.0,不然端口转发的话,无法监听。www-port 需要设置为允许转发的端口。
5.2 配置数据库
创建:
1 2 3 4
| cat > "$HOME/.config/rstudio-server/database.conf" <<EOF provider=sqlite directory=$HOME/.local/share/rstudio-server EOF
|
这用于将 SQLite 数据库位置指定到用户可写目录。
5.3 检查配置
1 2 3
| "$RSERVER" \ --config-file="$HOME/.config/rstudio-server/rserver.conf" \ --check-config
|
6. 启动 RStudio Server
在计算节点上运行:
1 2
| "$RSERVER" \ --config-file="$HOME/.config/rstudio-server/rserver.conf"
|
7. SSH 端口转发
GenomeDK 集群允许的转发方式为:
1 2
| ssh -L <LOCAL_PORT>:<COMPUTE_NODE>:<REMOTE_PORT> \ <USER>@login.genome.au.dk
|
本地终端
这条命令必须在本地电脑的新终端中运行。SSH 登录后不要关闭该终端。
然后浏览器访问:
http://localhost:8254
现在应该能够使用原生 RStudio 界面。
8. 创建启动脚本(只执行一次)
创建启动脚本(点击展开)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
| cat > "start-rstudio.sh" <<'EOF'
set -euo pipefail
if ! command -v conda >/dev/null 2>&1; then echo "ERROR: conda command not found" exit 1 fi
conda activate biosoft
export RSTUDIO_HOME="$HOME/opt/rstudio-server/extracted/usr/lib/rstudio-server" export RSERVER="$RSTUDIO_HOME/bin/rserver"
export R_BIN="$(command -v R)" export R_HOME="$(R RHOME)"
export LD_LIBRARY_PATH="$CONDA_PREFIX/lib:$R_HOME/lib:${LD_LIBRARY_PATH:-}"
echo "======================================" echo " RStudio Server (non-root)" echo "======================================" echo "Host: $(hostname)" echo "User: $(id -un)" echo "R: $R_BIN" echo "Conda: $CONDA_PREFIX" echo "Port: 8254" echo "======================================"
exec "$RSERVER" \ --config-file="$HOME/.config/rstudio-server/rserver.conf" EOF
chmod +x "start-rstudio.sh"
|
参考文档