R语言的IDE一般用户常用RStudio,但是Rstudio作为单机软件,对计算机的硬件有一定的要求,换机重新安装各类依赖包也很繁琐。Rstudio Server作为服务器端的应用,可以快速统一部署项目且迁移方便。最近用手中的VPS安装并初步测试了一下Rstudio Server的运行情况。
使用的是ruvds的小鸡,[email protected],512M+10G HDD.Debian 10 系统.
首先要安装R:参考Rstudio官方教程
ssh root登录后,执行以下命令:
#安装相关包
apt-get update
apt-get install gdebi-core
#指定要安装的R版本
export R_VERSION=4.1.2
#安装R
curl -O https://cdn.rstudio.com/r/debian-10/pkgs/r-${R_VERSION}_1_amd64.deb
gdebi r-${R_VERSION}_1_amd64.deb
#检查是否安装成功
/opt/R/${R_VERSION}/bin/R --version
#如果输出“R version 4.1.2..."说明安装成功
#首次安装时需要建立R目录符号链接,使其列入系统路径PATH里。
ln -s /opt/R/${R_VERSION}/bin/R /usr/local/bin/R
ln -s /opt/R/${R_VERSION}/bin/Rscript /usr/local/bin/Rscript
#安装Rstudio-Server
wget https://download2.rstudio.org/server/bionic/amd64/rstudio-server-2021.09.2-382-amd64.deb
gdebi rstudio-server-2021.09.2-382-amd64.deb
#出于安全考虑,新建用户专门用于连接Rstudio Server,注意建立用户时就向其分配家目录,不然之后登陆会报错。
useradd serveruser -m
passwd serveruser #指定密码
至此成功安装Rstudio Server,默认端口为8787。使用http://服务器ip:8787进入登录界面,输入severuser和对应密码即可登录
一些问题:
1.访问端口
Rstudio Server http默认走8787,https默认走443,http访问可以在/etc/rstudio/rserver.conf里修改成其他端口。
2.登陆时报错“could not connect to the R session in Rstudio Server”
为对应用户新建家目录,把文件夹所有权赋给用户(可以用sftp客户端去弄,注意查一下用户uid)
iptables/firewalld开放8787端口权限。
Rstudio Server运行时,SELinux的监管需要降低到”permissive”状态或者完全关闭。
3.安装包时报错“system call failed: Cannot allocate memory”
这个问题有两种可能原因:
1.权限不够,当时在安装R时直接用的root用户登录的,系统自带了一部分包(r-base)放在R的安装目录里,就是System Library,但是server登录时新建的用户没有root权限,只能修改User Library,而对System Library无法进行更改。比较简单的解决方法是把System Library所在文件夹的权限赋给server用户。
2.内存不够,Rstudio本身占内存很小,但是R对系统资源尤其是内存有一定的需求。本地电脑目前至少都是双核4G,这个单核0.5G的小鸡资源肯定是不够的。只是用来做演示。查找资料发现,可以通过修改系统默认交换文件(swappiness)的使用比例来暂时解决。