服务器中旧版本的R已经不满足新的一些R包的安装,因此需要安装更高版本的R,参照RStudio提供的步骤来安装R4.2.3
Posit - Install R - Posit Documentation
先选择好系统版本
$ sudo yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
$ sudo yum install yum-utils
$ sudo yum-config-manager --enable "rhel-*-optional-rpms"
$ export R_VERSION=4.2.3
$ curl -O https://cdn.rstudio.com/r/centos-7/pkgs/R-${R_VERSION}-1-1.x86_64.rpm
$ sudo yum install R-${R_VERSION}-1-1.x86_64.rpm
$ /opt/R/${R_VERSION}/bin/R --version
$ sudo ln -s /opt/R/${R_VERSION}/bin/R /usr/local/bin/R
$ sudo ln -s /opt/R/${R_VERSION}/bin/Rscript /usr/local/bin/Rscript
至此,R4.2.3已经安装好,以上步骤来源于开始的那个链接,网页中会有相关步骤的介绍,操作成功率较高。
接下来开始安装RStudio Server
首先:选择版本
1、找到对应版本,安装(这两步均来自官网)
$ wget https://download2.rstudio.org/server/centos7/x86_64/rstudio-server-rhel-2023.09.1-494-x86_64.rpm
$ sudo yum install rstudio-server-rhel-2023.09.1-494-x86_64.rpm
2、查看配置文件
$ vi /etc/rstudio/rserver.conf #添加以下内容到文件中
# Server Configuration File
www-port=8787 #监听端口,默认是8787,可以修改为其他的
www-address=127.0.0.0 #允许访问的IP地址,默认0.0.0.0 (此处为自己的IP地址)
rsession-which-r=/usr/local/bin/R ## 如果非root安装,更改R所在目录
保存后退出
3、开启8787端口
$ systemctl enable rstudio-server.service
$ systemctl start rstudio-server.service #我在输入这一句报错
$ sudo rstudio-server start #重新输入,提示以下错误
/usr/lib/rstudio-server/bin/rserver: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.19' not found (required by /usr/lib/rstudio-server/bin/rserver)
/usr/lib/rstudio-server/bin/rserver: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.18' not found (required by /usr/lib/rstudio-server/bin/rserver)
/usr/lib/rstudio-server/bin/rserver: /lib64/libstdc++.so.6: version `CXXABI_1.3.5' not found (required by /usr/lib/rstudio-server/bin/rserver)
/usr/lib/rstudio-server/bin/rserver: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.14' not found (required by /usr/lib/rstudio-server/bin/rserver)
/usr/lib/rstudio-server/bin/rserver: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.15' not found (required by /usr/lib/rstudio-server/bin/rserver)
意思是,lib64/libstdc++.so.6版本过于老旧,没有GLIBCXX_3.4.19等,解决办法如下:
$ strings /usr/lib64/libstdc++.so.6 | grep GLIBC #查看libstdc++.so.6的GLIBC有哪些
果然没有更新
$ find / -name "libstdc++.so*" #查找系统中已有的libstdc++.so
发现/root/miniconda3/pkgs/libstdcxx-ng-9.3.0-hd4cf53a_17/lib/libstdc++.so.6.0.28 版本最新
strings /root/miniconda3/pkgs/libstdcxx-ng-9.3.0-hd4cf53a_17/lib/libstdc++.so.6.0.28|grep GLIBCXX #发现果然满足要求
然后复制该文件到/usr/lib64
$ cp /root/miniconda3/pkgs/libstdcxx-ng-9.3.0-hd4cf53a_17/lib/libstdc++.so.6.0.28 /usr/lib64
$ cd /usr/lib64
$ rm -rf libstdc++.so.6 #移除旧的
$ ln -s libstdc++.so.6.0.28 libstdc++.so.6 创建新的软链接
到此报错解决。
$ systemctl start rstudio-server.service #启动
$ systemctl status rstudio-server #检查 RStudio Server 服务状态
配置防火墙规则:
$ firewalld
$ firewall-cmd --permanent --add-port=8787/tcp
$ firewall-cmd --permanent --add-port=8787/udp
$ firewall-cmd --reload
这将打开 8787 端口,允许通过该端口访问 RStudio Server
配置设后重启Rstudio-server,使用rstudio-server restart重启服务,提示一些日志信息
TTY detected. Printing informational message about logging configuration. Logging configuration loaded from '/etc/rstudio/logging.conf'. Logging to '/var/log/rstudio/rstudio-server/rserver.log'.
还可以使用rstudio-server verify-installation来验证,出现以下内容,表示成功
Server is running and must be stopped before running verify-installation
接下来,在浏览器输入 http://<服务器ip>:8787 即可打开RStudio Server网页,输入账号密码就可以使用了。