Linux中离线安装R语言程序包

问题描述

R是属于GNU系统的一个自由、免费、源代码开放的软件,它是一个用于统计计算和统计制图的优秀工具。R语言开源的生态为我们提供了丰富强大的R扩展程序包(R package),帮助我们开展各类分析工作。
在能连接到互联网的环境下,我们可以使用install.packages("xx")命令轻松下载R程序包并加载,但如果无法连接到互联网(如军工专网、虚拟机等),我们用什么方式来安装R程序包呢?
本文介绍一种Linux系统中,无法连接到互联网时,离线安装R程序包的解决方案,环境信息如下:

外网环境:Windows +R 3.5.2
内网环境:Linux CentOS + R 3.5.2

解决方案

以时序分析常用的单位根检验工具包fUnitRoots和预测分析包forecast为例说明。

1.在Windows R中下载安装包

首先进入R控制台,指定下载镜像,采用国内清华的镜像,速度较快,推荐使用。

options(repos=structure(c(CRAN="https://mirrors.tuna.tsinghua.edu.cn/CRAN/")))

定义一个获取程序包的函数

getPackages <- function(packs){
  packages <- unlist(
    tools::package_dependencies(packs, available.packages(),which=c("Depends", "Imports"), recursive=TRUE)
  )
  packages <- union(packs, packages)
  packages
}

指定要下载的程序包

packages <- getPackages(c("fUnitRoots","forecast"))

以源码方式将程序包下载至Windows指定文件夹下

download.packages(packages, destdir="E:/rpackage/", type="source")

下载完成后,在指定目录下可以看到下载完成的文件。
Linux中离线安装R语言程序包_第1张图片

2.将下载的源码包上传至Linux

使用xftp工具将下载的源码包上传至Linux的特定目录。

3.Linux R中编译安装程序包

进入R控制台,输入以下命令,编译安装程序包。
注:Linux要有make make install命令支持,如果没有命令需安装gcc。

library(tools)
path <- "/root/rpackage"
write_PACKAGES(path,type="source")
myPackages <- c("fUnitRoots","forecast")
install.packages(myPackages, contriburl=paste("file:",path,sep=''),type="source")

过程如图所示:
Linux中离线安装R语言程序包_第2张图片

加载

library(fUnitRoots)
library(forecast)

你可能感兴趣的:(R)