工作日记:CentOS7 离线安装R语言及R包

1,203 阅读3分钟

最近在工作中需要用到R语言fpp2包的STL算法,发现CentOS 7 安装R语言和R包的过程全是坑,因此我总结了此篇博客来帮助其他人。

一、安装R语言

R语言官网的离线安装包,我下载下来一直编译不通过,可能是少很多依赖。因此我的思路是使用yum去下载R语言的安装包,然后把rpm包拷到其他离线的Linux服务器中安装。

1. 获取R语言的RPM包

  • 首先找一台能联网的CentOS服务器,使用以下命令进行下载R语言的安装包。
  • 执行命令,创建目录/R。(R语言的依赖很多,建议创建一个空目录来存放安装包):mkdir /R
  • 执行命令,下载R语言及其依赖的安装包到目录/Ryum install --downloadonly --downloaddir=/R R
  • 这里分享一份我下载好的安装包,我提供的安装包版本为3.6.0,是yum默认源的最高版本。截止到2022-07-30,R语言最高版本为4.2.1。如果想利用yum下载最新的R语言安装包,请把yum源更换为清华源。

2.上传R语言RPM包到离线的Linux服务器并安装

  • 将安装包复制到离线的Linux服务器中。
  • 移动到R语言RPM包所在目录,执行命令强制安装:rpm -ivh *.rpm --force --nodeps
  • 执行命令,清理无用的安装包,节省Linux磁盘空间:sudo rm -rf /* && reboot
  • 如果上一条命令没有执行成功,此时输入命令R --version可以看到R语言的版本信息,如果如下图所示,则安装成功。如果上一下命令执行成功,请重装CentOS7。(ヾ(๑╹◡╹)ノ")

搜狗截图20220730141119.png

  • 输入命令:R。即可进入R语言命令行。

搜狗截图20220730141119.png

二、安装R包

  • 众所周知,R语言有官方的R包管理网站——CRAN,上边的R包都是由世界各地的权威学术研究团队编写的,包含了成千上万种的算法。R语言正是因为拥有CRAN这个大杀器,所以在算法领域比Python、Julia更受欢迎。
  • R包导入R语言工作空间有两种方式,一种是通过R语言命令行使用 install.packages("需安装的包名")命令直接连接CRAN网站下载。另一种是先去CRAN网站上下载离线安装包,然后通过命令install.packages("./需安装的包名.tar.gz")来进行安装。
  • 这里我建议使用第一种方式来安装R包,因为,有些R包所需的依赖太多太多了,比方说我要用的fpp2这个R包,它需要‘cli’, ‘crayon’, ‘expsmooth’, ‘fma’, ‘forecast’, ‘ggplot2’, ‘magrittr’, ‘purrr’, ‘rstudioapi’等R包,而这些R包,又依赖一大堆R包。我不可能手动的一个一个去找。因此我需要使用第一种方式来自动安装R包及其依赖。

搜狗截图20220730141119.png

  • 那么问题又来了,如果我的Linux服务器没有外网怎么办?
  • 如果Linux服务器A没有外网,我们可以先找一台有外网的Linux服务器B,在B上先安装R语言,然后进入R语言命令行利用命令install.packages("需安装的包名")下载R包,然后去B服务器的R包安装目录,把安装目录下的所有R包,直接拷贝到服务器A的R包安装目录中。
  • 我们可以通过命令.libPaths()查看本机R语言的R包安装目录。

搜狗截图20220730141119.png