在 Linux 上 安装 R/RStudio Server 及 R 包

您所在的位置:网站首页 rstudioserver登陆不了 在 Linux 上 安装 R/RStudio Server 及 R 包

在 Linux 上 安装 R/RStudio Server 及 R 包

2024-02-03 19:46| 来源: 网络整理| 查看: 265

重新整理了一篇在 Linux 环境中安装 R/RStudio Server 及 R 包,使用 R 连接数据库的笔记。

上个月在服务器上跑模型的时候一不小心把内存占满了,还好没产生什么别的影响。但因祸得福,这件事使好领导想起来有台配置更好的服务器可以给我用。本来好领导打算自己动手帮忙装 R 的,不过我坚持要练练手,于是好领导给我配了一个没有 root 权限的账号让我自己折腾去。因为之前在其他服务器上装 R/RStudio Server 及 R 包都有记笔记,这次想顺便整理一个完整版。不过由于缺乏一些基础常识,断断续续折腾了两三天把 R/RStudio Server 和一些 R 包都装到了 home 目录下……由于装 xgboost 和 glmnet 包都需要升级 gcc,这一步我没成功,后来还是好领导替我换了个目录重新装了 R、升级 gcc 以及装了那两个包。

正式开始前,先了解下环境信息,登录服务器,执行uname -a、cat /proc/version等查看 Linux 版本。

基本环境:Linux version 3.10.0-1062.el7.x86_64(gcc version 4.8.5 20150623 (Red Hat 4.8.5-36) (GCC) )

安装条件:离线安装。服务器有防火墙,不能联外网,也需要申请具体端口访问权限,所以这篇笔记里没有任何与设置防火墙相关的内容。

默认规则:服务器上的 home 目录相当于 windows 系统的 c 盘,一般不要把软件装在 home 目录下。

本次安装时,由于缺乏经验,下文中各种文件目录被弄得不够统一、较复杂,于是正文中每次涉及文件目录时都会不厌其烦地详细叨一遍。

1.安装 R 🔗

在 CRAN 上下载最新的 R 源码文件压缩包(R-4.2.2.tar.gz),传到服务器上。

1.1.基本步骤 🔗

以下仅仅只是编译安装 R 的基本步骤,一般都会在编译那一步报很多错,踩不少坑。若是想要一次编译成功,且对后续装 R 包没影响,需要把后两个小节中显性坑、隐性坑里提到的 Linux 包都在编译之前装好。但是不同环境会导致报的错不同,离线安装还是需要做好趟坑的心理准备。

#! 切换到压缩包所在目录 cd /home/model/R/ #! 解压,完成后会生成一个新的 R-4.2.2文件夹,里面就是解压后的文件 tar -zxvf R-4.2.2.tar.gz #! 切换到 R-4.2.2文件夹下面 cd R-4.2.2/ #! 编译,指定安装目录 ./configure --prefix='/home/model/R/R-4.2.2/' --enable-R-shlib=yes --with-readline=yes --with-libpng=yes --with-x=yes --with-blas --with-tcltk --with-pcrel #! 安装 make make install

需要说明的是:

--enable-R-shlib=yes表示生成 libR.so 库,不加这段的话后面装 Rstudio-server 会缺少 libR.so,会报错“R shared library (…/R-4.0.3/lib64/R/lib/libR.so) not found. If this is a custom build of R, was it built with the –enable-R-shlib option?”。

编译代码后面跟的一长串,是笔者装了好几次 R 和 RStudio Server 后,试错试出来的。换个新的服务器重新再装一次的话,还是会因为环境变了而出现新的问题。这里有一篇文章列举了在编译步骤之前应先安装的必备包,以后再有机会的话倒是可以试试看,看看是不是可以一口气跳过所有坑。

1.2.显性坑(编译失败) 🔗

若编译时报错,大多是因为服务器系统环境中没有安装某些 Linux 包,需要根据报错信息一一安装。

configure: error: –with-readline=yes (default) and headers/libs are not available

sudo yum install readline-devel

configure: error: –with-x=yes (default) and X11 headers/libs are not available

sudo yum install libXt-devel

configure: error: zlib library and headers are required

sudo yum install zlib-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 xz-devel

configure: error: PCRE2 library and headers are required, or use –with-pcre1 and PCRE >= 8.32 with UTF-8 support

上次在别的服务器上装 R 时,缺少 PCRE2 只需要执行sudo yum install pcre2-devel libcurl-devel即可。但是刚好新服务器上没有 pcre2-devel,于是摸索着做了以下尝试。

1.参考网上搜的文章,下载 pcre2-10.39.tar.bz2,安装以后编译 R 报一样的错,失败。这是因为需要的是 pcre2-devel 而不是 pcre2。

2.找到官网,下载 pcre2-devel-10.23-2.el7.x86_64.rpm,安装pcre2-devel 时报错说缺少pcre2-utf32(x86-64) = 10.23-2.el7和libpcre2-32.so.0()(64bit)。

3.下载pcre2-utf32-10.23-2.el7.x86_64.rpm,安装完成,没报错。继续安装 pcre2-devel,也没报错。

继续执行之前的编译代码,没有报错,于是继续安装直至完成。安装好以后,执行cd /home/model/R/R-4.2.2/bin/到对应目录下,再执行./R运行 R,验证 R 是否正常安装成功。

1.3.隐性坑(重新编译 R) 🔗

在之前编译完成后会出现下面这段,可能会提示出一些隐藏的坑。

Capabilities skipped: PNG, JPEG, TIFF, cairo, ICU 表示在 Linux 上使用 R 时不支持绘制这些图形形式,将来用 ggplot2 以及依赖 ggplot2 的包绘图会报错。 C++14 compiler 后面是空的,表示系统环境暂不支持 C++14,将来装 xgboost、glmnet 包时会报错。 没有提示缺少 Java 开发工具包(JDK),将来装 rJava、RJDBC 包时会报错。 R is now configured for x86_64-pc-linux-gnu Source directory: . Installation directory: /home/model/R/R-4.2.2 C compiler: gcc -std=gnu11 -g -O2 Fortran fixed-form compiler: gfortran -g -O2 Default C++ compiler: g++ -std=gnu++11 -g -O2 C++11 compiler: g++ -std=gnu++11 -g -O2 C++14 compiler: C++17 compiler: C++20 compiler: Fortran free-form compiler: gfortran -g -O2 Obj-C compiler: Interfaces supported: X11 External libraries: pcre2, readline, curl Additional capabilities: NLS Options enabled: shared R library, shared BLAS, R profiling Capabilities skipped: PNG, JPEG, TIFF, cairo, ICU Options not enabled: memory profiling Recommended packages: yes configure: WARNING: you cannot build info or HTML versions of the R manuals configure: WARNING: you cannot build PDF versions of the R manuals configure: WARNING: you cannot build PDF versions of vignettes and help pages

打开 R,在 R 中输入capabilities()可以得到下面这段,也是说明缺少一些支持。

>capabilities() jpeg png tiff tcltk X11 aqua FALSE FALSE FALSE FALSE FALSE FALSE http/ftp sockets libxml fifo cledit iconv TRUE TRUE FALSE TRUE TRUE TRUE NLS Rprof profmem cairo ICU long.double TRUE TRUE FALSE FALSE FALSE TRUE libcurl TRUE

由于是系统环境问题,需要重新编译 R ,在此之前先安装一些相关的包,如下。

sudo yum install libpng libpng-devel libtiff libtiff-devel libjpeg-turbo libjpeg-turbo-devel cairo cairo-devel libicu-devel

如果Linux 环境中没有安装 libicu-devel,后面在 R 中安装 stringi 包时会报错,依赖 stringi 的包都会安装失败。

如果 Linux 环境中没有安装 cairo,后面在 R 中可能会无法安装 Cairo 包,依赖 ggplot2 的 scorecard 包绘图时会报错。

如果需要支持 C++14编译器或更高版本,此时需要升级 gcc。

重新编译的步骤和第1.1小节中的基本步骤是一样的。为了避免混淆,在别的目录下再次解压 R-4.2.2.tar.gz,但是编译代码可以不用改,因为重新编译可以覆盖之前的,继续把 R 安装到之前的目录下面即可。编译完成后会看到“ Additional capabilities: PNG, JPEG, TIFF, NLS, cairo, ICU”,接着继续执行 make && make install 即可。

2.安装 Rstudio Server 🔗

上官网下载 Rstudio Server的 rpm 文件,上传到服务器。

#! 安装 RStudio Server sudo yum localinstall rstudio-server-rhel-1.4.1717-x86_64.rpm #! 查看端口有无被占用 netstat -nat|grep 8888 :' #添加跟端口配置相关的文件 #修改文件:vi #文件中插入内容:按I键 #保存并退出: 按下Esc键 + :wq #不保存退出: 按下Esc键 + :q! ' sudo vi /etc/rstudio/rserver.conf :' #! 在 rserver.conf 文件中增加下面两行 第一行指定 R 程序所在位置 第二行指定端口号 ' rsession-which-r=/home/model/R/R-4.2.2/bin/R www-port=8888 #! 检查配置是否完整 sudo rstudio-server verify-installation #! 启动服务 sudo rstudio-server start #! 查看状态,当出现 active(激活) 时,配置完成 sudo rstudio-server status #! 重启服务 sudo rstudio-server restart #! 关闭服务 sudo rstudio-server stop

启动服务后,在浏览器地址中输入IP:8888就会看到 RStudio Server 的登录界面,账户密码就是登录服务器的账户密码。

在检查配置是否完整时,报了下面的错,可能是因为没有配置 rsession.conf 文件,但是并不影响使用,可以忽略。

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’.

/usr/lib/rstudio-server/bin/rsession: error while loading shared libraries: libR.so: cannot open shared object file: No such file or directory

3.安装 R 包 🔗

本次仅安装以下 R 包:

markdown/rmarkdown Cairo:用于部分图形输出 DBI/rJava/RJDBC:用于连接 Oracle、hive 等数据库 data.table:数据处理 echarts4r:绘制图形 DT:绘制表格 scorecard/bigstep/glmnet:计算 IV 值、分箱、绘制 ROC/K-S 曲线、逐步回归、交叉验证等 xgboost:训练 XGBoost 模型

在安装以上 R 包时,也会顺带装好一系列依赖包,比如 stringi、stringr、dplyr、ggplot2、shiny 等。

3.1.基本步骤 🔗

由于服务器上不能联外网,所以和安装 R、RStudio Server 一样,也需要先在能联外网的本地下载好需要安装的 R 源码包,并把下载的一系列文件都传到服务器上。在本地下载各种包和依赖包的代码如下。

getPackages


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3