在不具有所有依赖项的互联网连接的情况下,在R中安装软件包

时间:2018-10-22 12:14:19

标签: r install.packages

我在tgz中拥有所有软件包,我想安装sparklyr:

install.packages(pkgs = "sparklyr_0.9.2.tar.gz",
                 lib = getwd(),
                 verbose = T,
                 repos = NULL,
                 dependencies = TRUE)
system (cmd0): /opt/cloudera/extras/R-3.3.1/lib/R/bin/R CMD INSTALL
ERROR: dependencies ‘broom’, ‘r2d3’, ‘purrr’, ‘forge’ are not available for package ‘sparklyr’
* removing ‘/home/afranco/Paquetes/sparklyr’

,但是在同一文件夹中,有“ broom”,“ r2d3”,“ purrr”,“ forge”软件包。所以我想使用这种方法安装一些软件包,但是我没有任何互联网连接。

1 个答案:

答案 0 :(得分:0)

r-bloggers帖子中的说明将为您提供所需的所有信息: How to install packages without internet

这是有关依赖项的部分:

在Office中:下载依赖项 知道我们需要的软件包是一回事,但是知道它们所依赖的软件包是另一回事,而知道那些依赖项依赖的软件包是……很好,不值得考虑– R附带的一个函数为我们完成了这个工作,称为package_dependencies ()。

这是一个简短的示例脚本,该脚本使用package_dependencies()从我们要使用的软件包中找出依赖关系。

# Download the packages to the working directory.
# Package names and filenames are returned in a matrix.
setwd("D:/my_usb/packages/")
pkgInfo <- download.packages(pkgs = packages, destdir = getwd(), type = "win.binary")
# Save just the package file names (basename() strips off the full paths leaving just the filename)
write.csv(file = "pkgFilenames.csv", basename(pkgInfo[, 2]), row.names = FALSE)

然后,我们可以为要进行培训的环境下载正确的软件包类型。通常我们的客户使用Windows,因此我们将下载“ win.binary”类型。我们还将保存软件包文件名,以便以后可以按文件名安装它们。

# Set working directory to the location of the package files
setwd("D:/my_usb/packages/")

# Read the package filenames and install
pkgFilenames <- read.csv("pkgFilenames.csv", stringsAsFactors = FALSE)[, 1]
install.packages(pkgFilenames, repos = NULL, type = "win.binary")

在现场:安装软件包 假设我们已经在现场将软件包下载到USB记忆棒或类似设备上,并且没有Internet连接,那么现在可以从磁盘安装软件包了。

{{1}}