这篇笔记相当于是对之前在linux中安装Rstudio-server的笔记的一个补充。
几个月前由于当时的 R 和 RStudio 都是安装在生产环境上,不大方便测试,于是要在测试环境上再从头到尾装一遍 R 和 RStudio 以及常用的 R 包。整个过程中当然又各种踩坑,有些报的错误由于当时复制粘贴出来问同事了,所以还能找到记录,有些就只记得大概的解决方法,具体咋操作的记不清了。我对 Linux 不熟,版本相关信息只可说见过一些关键词,如 CentOS、redhat 等。
安装 R 🔗
在不能联网的服务器上安装 R 的流程很简单,把下载好的R安装文件弄过来,然后解压-编译-安装,安装完以后cd /R-4.0.3/bin/
到对应目录下执行./R
看看是不是正常装好了。
# cd 到 R 安装文件所在目录
# 解压
tar -zxvf R-4.0.3.tar.gz
# 编译
./configure --prefix='/home/hadoop/R/R-4.0.3/' --enable-R-shlib=yes --with-tcltk --with-pcrel
# 安装
make
make install
编译过程中报了很多错误,有些是因为安装环境中缺少某些包,有些是因为所使用的那个账户权限有限,所以要重新安装那些包。最坑的一点是报错说需要的包和头文件的名字,跟最后需要装的文件名字非常不一致。比如说报错显示缺少bzip2
,于是要安装bzip2-devel
包。但是报错说缺少liblzma
,这就真是瞎碰乱试好半天才知道要安装的是lzma
和xz-devel
。
configure: error: –with-readline=yes (default) and headers/libs are not available configure: error: –with-x=yes (default) and X11 headers/libs are not available
sudo yum install readline-devel
sudo yum install libXt-devel
sudo yum install libpng-devel
configure: error: bzip2 library and headers are required
sudo yum install bzip2-devel
configure: error: “liblzma library and headers are required”
sudo yum install lzma
sudo yum install xz-devel
configure: error: PCRE2 library and headers are required, or use –with-pcre1 and PCRE >= 8.32 with UTF-8 support;
sudo yum install pcre2-devel
sudo yum install libcurl-devel
安装 Rstudio Server 🔗
安装方法跟以前一样,但是报错了。
/usr/lib/rstudio-server/bin/rsession: error while loading shared libraries: libR.so: cannot open shared object file: No such file or directory
解决办法忘记了,好像是虽然报错,但是能够正常登陆。
安装 R 包 🔗
安装 stringi 包时报了个很迷的错误。
icudt download failed
Error: Stopping on error
In addition: Warning messages:
1: In download.file(paste(href, fname, sep = “”), icudtzipfname, mode = “wb”) :
URL ‘https://raw.githubusercontent.com/gagolews/stringi/master/src/icu69/data/icu4c-69_1-data-bin-l.zip': status was ‘Couldn’t connect to server’
2: In download.file(paste(href, fname, sep = “”), icudtzipfname, mode = “wb”) :
URL ‘http://raw.githubusercontent.com/gagolews/stringi/master/src/icu69/data/icu4c-69_1-data-bin-l.zip': status was ‘Couldn’t connect to server’
Execution halted
在网络上遨游一番后,参考https://cran.r-project.org/web/packages/stringi/INSTALL找到了一个答案:install.packages("~/R/R-4.0.3/source/stringi_1.7.3.tar.gz", repos = NULL, type = "source",configure.vars="ICUDT_DIR=/home/hadoop/R/R-4.0.3")
。
安装 xgboost 包时报错。
Error: C++14 standard requested but CXX14 is not defined
网上说要升级 gcc,但是我升级 gcc 以后还是报同样的错,然后我就撂挑子了。最后是领导帮忙,在 gcc 已经升级的基础上把 R 重新编译安装到我原来装的那个目录下,接着安装 xgboost 就不报错。最后的最后,领导把 gcc 还原到升级之前的版本了。这里我琢磨了一下,遇到这个错的正确处理步骤确实是:升级 gcc–重装 R–装 R 包–还原 gcc。我猜装 xgboost 包时不能编译成功的原因确实是 gcc 版本太旧,但是 xgboost 包不是直接借由 gcc 编译器来编译,而是要在 R 上编译,所以升级 gcc 以后还得重装 R 才好使。
还遇到过一个小问题,RStudio Server 输入完账号和密码登录进去以后,页面一直在转圈圈,后来发现是缺少了 rmarkdown 。