在做生信分析项目,比如转录组、单细胞时,先在服务器中运行一系列的生信软件对下机数据进行质控过滤等流程,再用R进行数据挖掘。如果质控后的数据传到自己的电脑上用R分析,一是翻来覆去比较麻烦,二是个人电脑配置不足会影响分析的效率甚至于分析不了。为了解决上述问题,可以在服务器中配置R的在线环境,通过浏览器连接到服务器的R,再进行后续分析。
如何配置一个在线的R环境,以通过服务器ip地址和8787端口连接呢,大体分为5步,分别是1.新建普通用户,2.安装R,3.安装RStudio,4.开启8787端口,5.登录。
使用浏览器登录R时不允许管理员账户(root)登录,因此需要创建一个普通用户。
sudo useradd -d /home/qgy -m qgy
sudo passwd qgy
sudo usermod -G sudo qgy
su - qgy
conda install -y r-base=4.1.2
进入RStudio官网(Posit | The Open-Source Data Science Company),Products->RStudio Server->DOWNLOAD RSTUDIO SERVER
依次输入以下命令:
sudo apt-get install gdebi-core
wget https://download2.rstudio.org/server/jammy/amd64/rstudio-server-2023.03.0-386-amd64.deb
sudo gdebi rstudio-server-2023.03.0-386-amd64.deb
安装完成后查看rstudio-server的状态
(base) qgy@hecs-340067:~$ rstudio-server status
× rstudio-server.service - RStudio ServerLoaded: loaded (/lib/systemd/system/rstudio-server.service; enabled; vendor preset: enabled)Active: failed (Result: exit-code) since Fri 2023-03-17 11:13:39 CST; 2min 16s agoProcess: 39307 ExecStart=/usr/lib/rstudio-server/bin/rserver (code=exited, status=0/SUCCESS)Main PID: 39308 (code=exited, status=1/FAILURE)CPU: 18ms
发现报错了,这是因为rstudio找不到R在哪,找到安装好的R的路径
(base) qgy@hecs-340067:~$ which R
/home/qgy/miniconda3/bin/R
将R路径写入Rstudio的配置文件中,由于配置文件普通用户无权限更改,还需要切换到root下
(base) qgy@hecs-340067:~$ su - root
Password:
root@hecs-340067:~$ vim /etc/rstudio/rserver.conf
在该文件里,把R路径写进去
此时再查看rstudio-server状态,还是不行,restart重启一下,查看状态发绿了就行了
(base) qgy@hecs-340067:~$ rstudio-server status
× rstudio-server.service - RStudio ServerLoaded: loaded (/lib/systemd/system/rstudio-server.service; enabled; vendo>Active: failed (Result: exit-code) since Fri 2023-03-17 11:26:44 CST; 2min>Process: 40048 ExecStart=/usr/lib/rstudio-server/bin/rserver (code=exited, >Main PID: 40049 (code=exited, status=1/FAILURE)CPU: 17ms
(base) qgy@hecs-340067:~$ rstudio-server restart
TTY detected. Printing informational message about logging configuration. Logging configuration loaded from '/etc/rstudio/logging.conf'. Logging to '/home/qgy/.local/share/rstudio/log/rserver.log'.
==== AUTHENTICATING FOR org.freedesktop.systemd1.manage-units ===
Authentication is required to restart 'rstudio-server.service'.
Authenticating as: qgy
Password:
==== AUTHENTICATION COMPLETE ===
(base) qgy@hecs-340067:~$ rstudio-server status
● rstudio-server.service - RStudio ServerLoaded: loaded (/lib/systemd/system/rstudio-server.service; enabled; vendo>Active: active (running) since Fri 2023-03-17 11:29:28 CST; 2s agoProcess: 40650 ExecStart=/usr/lib/rstudio-server/bin/rserver (code=exited, >Main PID: 40651 (rserver)Tasks: 4 (limit: 4344)Memory: 3.3MCPU: 505msCGroup: /system.slice/rstudio-server.service└─40651 /usr/lib/rstudio-server/bin/rserver
firewall-cmd --permanent --add-port=8787/tcp
firewall-cmd --permanent --add-port=8787/udp
firewall-cmd --reload
以华为云为例,按下方三张图片依次点击,优先级1-100,1是最高,端口号写8787。
输入服务器ip地址跟端口号,比如:121.37.68.231:8787
在使用root或用户id <=1000的账号登陆时,会报错。如果是root用户,需要重新创建新用户,给新用户添加读、写和操作R、Rstudio Server权限;如果是普通用户,使用id命令查看用户id,再使用usermod -u 修改用户id为大于等于1001的整数,如果出现用户在某个进程中,用kill -9 命令把进程杀掉,具体细节可参考图9。
使用conda安装R时报错:
An unexpected error has occurred. Conda has prepared the above report.
conda clean -i