如何在远程服务器上使用Rstudio

公众号:生信诊断所

使用远程服务器上的Rstudio server

用Rstudio处理数据是非常方便的,可以即时看到修改参数后的图形,而且数据加载到内存中,不需要一遍一遍重新读取,但是有时候处理比较大的数据时候,当电脑配置不高的话,就会面临内存不足的情况,导致电脑卡死。

而这时恰好你有一台linux服务器,有足够大的cpu和内存,在服务器上处理R时(linux端),要么是写好R脚本,要么打开R console,编写R代码,没有办法像Rstudio那样,实时查看图形。这时候就需要Rstudio server访问服务器了。

前提:你的Windows电脑要和linux服务器在同一网络下。

备注:系统为Ubuntu20;安装Rstudio server需要root权限。

只需要下载安装,截止2022年1月最新版

sudo apt-get install gdebi-core
wget https://download2.rstudio.org/server/bionic/amd64/rstudio-server-2021.09.2-382-amd64.deb
sudo gdebi rstudio-server-1.4.1717-amd64.deb

更多平台安装: https://rstudio.com/products/rstudio/download-server/debian-ubuntu/

如果报错:error while loading shared libraries: libssl.so.1.0.0: cannot open shared object file: No such file or directory


image.png

安装libssl-dev即可,方法如下:

sudo apt-get update

sudo apt-get install libssl-dev

然后重新安装最后一步:sudo gdebi rstudio-server-1.4.1717-amd64.deb

安装成功后截图如下:看到绿色active (running)

image.png

By default RStudio Server runs on port 8787 and accepts connections from all remote clients. After installation you should therefore be able to navigate a web browser to the following address to access the server:

默认Rstudio Server运行在8787端口,然后在浏览器中输入:服务器ip 和端口

http://192.168.0.105:8787/
http://:8787

就可以在浏览器中打开Rstudio了,连接的是你远程服务器,再也不用怕内存不足了。。。

image.png

启动,关闭,重启的命令:

$ sudo rstudio-server stop
$ sudo rstudio-server start
$ sudo rstudio-server restart
$ sudo rstudio-server status: 查看状态

服务器端Rstudio的使用:

登录进去之后默认的路径是你的home目录:可以通过getwd()查看

setwd设定工作目录:

踩坑:

直到有一天:Rstudio server再也登不上了,浏览器一直是转圈状态,进不去,查看了状态,最后一行爆出error:

ERROR The previous R session terminated abnormally; LOGGED FROM: rstudio::core::Error {anonymous}::rInit(const rstudio::r::session::RInitInfo&) src/cpp/session/SessionMain.cpp:694

这种情况只能重装,好在重装只需要三行命令:(别忘了先stop server)

sudo apt-get install gdebi-core 
wget https://download2.rstudio.org/server/bionic/amd64/rstudio-server-2021.09.2-382-amd64.deb
sudo gdebi rstudio-server-1.4.1717-amd64.deb

再试试

那么只能登录一个吗?

在一个运行的时候,能不能再打开一个呢?

有人说可以通过docker,但是没有试过。

你可能感兴趣的:(如何在远程服务器上使用Rstudio)