ubuntu-port 22.0.4 安装rstudio-server的一些探索

背景:想在平板电脑上原生运行RRstudio。前者是一个用于统计分析和作图的编程语言,后者是一个强大的代码编辑器和编程环境(IDE)。

博主的平板电脑是安卓系统的,有Termux这一软件可以实现对Linux终端的模拟(下载地址:https://f-droid.org/en/packages/com.termux/ )。由于这个模拟器并不是真正的Linux环境,因此许多软件并不能正常运行。幸运的是,在这一终端模拟器上,还有软件包proot-distro 可以安装Linux子系统(如ubuntu-port),因此我们借助proot-distro在安卓平板上安装了ubuntu-port 22.0.4的系统,并成功安装miniconda

有了ubuntu-port 22.0.4的系统和miniconda,安装R和Rstudio变得简单了一些。首先,我们安装了R,过程大致参考了许多网上教程,如 《如何使用conda安装R和R包》《conda 安装R语言及其R包》 等_(现已成功安装,可以通过命令行界面访问R)_。这之后,需要安装Rstudio。本文主要讲的是安装Rstudio时的一些探索。

注意到,Linux终端只有命令行界面,因此安装本地版Rstudio不太可能。我们要做的是安装Rstudio-server,然后通过平板上安装的浏览器对其进行访问。

1、安装包下载地址:

参考下列文档。Rstudio-server目前的官方版本只有x86和amd64的包,但是其beta版中有针对arm64编译的版本。

https://dailies.rstudio.com/rstudio/elsbeth-geranium/server/bionic-arm64/

我们采用文章中给出的链接进行安装包下载,指令如下:

1
wget -c https://s3.amazonaws.com/rstudio-ide-build/server/bionic/arm64/rstudio-server-2022.12.1-366-arm64.deb

2、安装gdebi

参考官方教程,我们运行下列指令安装gdebi,这是一个安装器,后面将用于rstudio-server的安装。

1
sudo apt-get install gdebi-core

3、安装rstudio-server

1
sudo gdebi rstudio-server-2022.12.1-366-arm64.deb

在ubuntu-port 22.0.4 系统上,安装rstudio-server时可能会出现找不到libssl1.0的问题( dependency is not satisfiable: libssl 1.0.0libssl1.0.2libssl 1.1 )。对于这种情况,可以手动安装对应软件包 (见第4小节)

4、(对于“找不到libssl1.0”问题的改进)手动安装libssl1.0

如果安装过程中没有出现“找不到libssl1.0”的问题,则可以跳过这一部分,直接进入第5小节。

4.1、下载

libssl1.1自ubuntu18.04之后就从仓库中移除了。因此只能进行手动安装:

1
wget -c https://mirrors.aliyun.com/ubuntu-ports/pool/main/o/openssl/libssl1.1_1.1.1-1ubuntu2.1~18.04.21_arm64.deb

上述链接中的版本号截止到2023年3月,在此之后openssl1.1可能还会有更新,因此下载对应版本号的软件包即可。

4.2、安装

1
sudo gdebi install libssl1.1_1.1.1-1ubuntu2.1~18.04.21_arm64.deb

4.3、rstudio-server安装

参见第3小节。

5、rstudio-server配置

Rstudio-server的配置文件保存在 /etc/rstudio/ 下面。我们需要修改几个文件以便于服务器运行。

  1. env-vars
1
2
# set virtual environment for Rstudio server.
PATH=/home/cyclin/wsl/anaconda3/envs/R/bin:/home/cyclin/wsl/anaconda3/condabin:$PATH

上面列出的是我自己的配置,实际安装过程中需要将R及Rscript对应的安装路径加入到PATH变量中。

  1. rserver.conf
1
2
# Server Configuration File# 更改RStudio-server使用的R版本
rsession-which-r=/home/cyclin/wsl/anaconda3/envs/R/bin/R

上面列出的是我自己的配置,实际安装过程中需要将R及Rscript对应的安装路径加入到rsession-which-r变量中。

  1. rsession.conf
1
2
3
4
5
# 超时设定(单位:分钟)
session-timeout-minutes=30

# 更改R包安装地址
r-libs-user=/home/cyclin/wsl/anaconda3/envs/R/lib/R/library

上面列出的是我自己的配置,实际安装过程中需要将R的library对应的存储路径加入到r-libs-user变量中。

6、启动与停止

  1. 启动
1
2
3
sudo rstudio-server start
# 或者
sudo service rstudio-server start

启动以后,在浏览器中访问 http://localhost:8787 即可使用Rstudio-server。【但是我没有走到这里,安装过程中的一些错误把我卡住了。】

  1. 停止
1
2
3
sudo rstudio-server stop
# 或者
sudo service rstudio-server stop

7. 仍然没有解决的问题

上述安装流程在PC端是没有问题的(系统是ubuntu 22LTS,以WSL1的形式运行于win11上)。但是在matepad上存在下列问题:

1
2023-03-15T13:06:50.037293Z [rserver] ERROR system error 1 (Operation not permitted); OCCURRED AT rstudio::core::Error rstudio::core::system::setResourceLimit(rstudio::core::system::ResourceLimit, RLimitType, RLimitType) src/cpp/core/system/PosixSystem.cpp:1568; LOGGED FROM: int main(int, char* const*) src/cpp/server/ServerMain.cpp:647

暂时没有找到这一问题的解决方法。