本文记录如何在 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
### biosoft为我的软件环境
conda activate biosoft

确认:

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"

### 这个执行前一定是激活了conda环境的,否则就找错了
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'
#!/usr/bin/env bash
set -euo pipefail

# 初始化 Conda
if ! command -v conda >/dev/null 2>&1; then
echo "ERROR: conda command not found"
exit 1
fi

conda activate biosoft

# RStudio installation
export RSTUDIO_HOME="$HOME/opt/rstudio-server/extracted/usr/lib/rstudio-server"
export RSERVER="$RSTUDIO_HOME/bin/rserver"

# Conda R
export R_BIN="$(command -v R)"
export R_HOME="$(R RHOME)"

# Fix libR.so and GLIBCXX compatibility
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 "======================================"

# Start RStudio Server in foreground
exec "$RSERVER" \
--config-file="$HOME/.config/rstudio-server/rserver.conf"
EOF

chmod +x "start-rstudio.sh"

参考文档

站内搜索

没有找到内容!