r - 从本地仓库安装 R 包(所有 .tar.gz 文件都已在那里下载)

标签 r install.packages

早上好,来自澳大利亚,

由于我们工作的计算机无法访问互联网,我已要求我们的 IT 经理下载所有 R 包并将它们放在共享网络位置。我已经将这些 4GB 的包转移到我的本地目录: E:/R-3.3.1/MyRPackages/src/contrib/______.tar.gz

我希望我的包安装在 E:\R-3.3.1\library

我使用的是 Windows 7 Professional,64 位,以及 RStudio 和 R 版本 3.3.1 (2016-06-21)。

我只是想安装.packages 并从我的本地存储库安装一个包,包括它的所有依赖项。

我已经尝试阅读这篇文章并尝试了 install.packages 命令的几种排列,但我没有运气。例如,

install.packages("E:/R-3.3.1/MyRPackages/src/contrib/devtools_1.12.0.tar.gz",dependencies = TRUE,repos = NULL)

错误:依赖项 'httr'、'memoise'、'whisker'、'digest'、'rstudioapi'、'jsonlite'、'git2r'、'withr' 不适用于包 'devtools' * 删除“E:/R-3.3.1/library/devtools” install.packages 中的警告: 运行命令 '"E:/R-33~1.1/bin/x64/R"CMD INSTALL -l "E:\R-3.3.1\library""E:/R-3.3.1/MyRPackages/src/contrib/devtools_1.12.0.tar.gz"' 状态为 1 install.packages 中的警告: 软件包“E:/R-3.3.1/MyRPackages/src/contrib/devtools_1.12.0.tar.gz”的安装具有非零退出状态

install.packages("E:/R-3.3.1/MyRPackages/src/contrib/devtools_1.12.0.tar.gz",dependencies = TRUE,repos = NULL,lib="E:/R-3.3.1/library")

错误:依赖项 'httr'、'memoise'、'whisker'、'digest'、'rstudioapi'、'jsonlite'、'git2r'、'withr' 不适用于包 'devtools' * 删除“E:/R-3.3.1/library/devtools” install.packages 中的警告: 运行命令 '"E:/R-33~1.1/bin/x64/R"CMD INSTALL -l "E:\R-3.3.1\library""E:/R-3.3.1/MyRPackages/src/contrib/devtools_1.12.0.tar.gz"' 状态为 1 install.packages 中的警告: 软件包“E:/R-3.3.1/MyRPackages/src/contrib/devtools_1.12.0.tar.gz”的安装具有非零退出状态

install.packages("E:/R-3.3.1/MyRPackages/src/contrib/devtools_1.12.0.tar.gz",dependencies = TRUE,repos = NULL,lib="E:/R-3.3.1/library",type = "source")

错误:依赖项 'httr'、'memoise'、'whisker'、'digest'、'rstudioapi'、'jsonlite'、'git2r'、'withr' 不适用于包 'devtools' * 删除“E:/R-3.3.1/library/devtools” install.packages 中的警告: 运行命令 '"E:/R-33~1.1/bin/x64/R"CMD INSTALL -l "E:\R-3.3.1\library""E:/R-3.3.1/MyRPackages/src/contrib/devtools_1.12.0.tar.gz"' 状态为 1 install.packages 中的警告: 软件包“E:/R-3.3.1/MyRPackages/src/contrib/devtools_1.12.0.tar.gz”的安装具有非零退出状态

最佳答案

稍微跟进@rosscova 的回答:有多种工具可以确定包的完整递归依赖集。通过多做一些工作,您可以编写一个脚本来获取所有这些内容(这确实很可能已经由某人在某个地方完成了......)

## dependencies=TRUE 
devtools::package_deps("devtools",dependencies=TRUE)
(p <- package_deps("devtools",dependencies=TRUE))
Needs update -----------------------------
 package       installed available remote
 curl          1.2       2.2       CRAN  
 evaluate      0.9       0.10      CRAN  
 gmailr        NA        0.7.1     CRAN  
 hunspell      NA        2.1       CRAN  
 irlba         2.1.1     2.1.2     CRAN  
 openssl       0.9.4     0.9.5     CRAN  
 R6            2.1.3     2.2.0     CRAN  
 rmarkdown     1.0       1.1       CRAN  
 stringi       1.1.1     1.1.2     CRAN 

这可能有点误导,因为 (?package_deps)

A ‘print()’ method identifies mismatches (if any) between local and CRAN versions of each dependent package;

这意味着要获得完整的依赖项列表,您需要直接打印 p$package:

p$package
 [1] "assertthat"    "base64enc"     "BH"            "BiocInstaller"
 [5] "bitops"        "brew"          "caTools"       "colorspace"   
 [9] "covr"          "crayon"        "curl"          "devtools"     
[13] "dichromat"     "digest"        "doParallel"    "evaluate"     
[17] "foreach"       "formatR"       "ggplot2"       "git2r"        
[21] "gmailr"        "gridBase"      "gtable"        "highr"        
[25] "htmltools"     "httr"          "hunspell"      "igraph"       
[29] "irlba"         "iterators"     "jsonlite"      "knitr"        
[33] "labeling"      "lazyeval"      "lintr"         "magrittr"     
[37] "markdown"      "memoise"       "mime"          "munsell"      
[41] "NMF"           "openssl"       "pkgmaker"      "plyr"         
[45] "praise"        "R6"            "RColorBrewer"  "Rcpp"         
[49] "registry"      "reshape2"      "rex"           "rmarkdown"    
[53] "rngtools"      "roxygen2"      "rstudioapi"    "rversions"    
[57] "scales"        "stringdist"    "stringi"       "stringr"      
[61] "testthat"      "tibble"        "whisker"       "withr"        
[65] "xml2"          "xtable"        "yaml"      

更多提示。

获取包 tarball + 依赖项的配方组件

  • 获取依赖项:tools::package_dependencies("pkgname", recursive = TRUE)
  • 在 CRAN 上查找最新版本:available.packages()["pkgname", "Version"]
  • 构建网址:paste/sprintf/glue [MIRROR]/src/contrib/[PKGNAME]_[VERSION] .tar.gz
  • download.file()
  • tar()

然后看this answer用于在远端安装部件。

关于r - 从本地仓库安装 R 包(所有 .tar.gz 文件都已在那里下载),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40390908/

相关文章:

r - 如何在 R 中选择每组的最小数字

R plm lag() 忽略面板结构

sql - 如何为一列中的每个值复制相同的行?

r - 如何为 R 中的动态库加载指定(非 R)库路径?

asp.net - 如何使用R登录然后从aspx网页下载文件

javascript - 如何在 R highcharter 中制作 3 级钻取图(可能有其他包)

r - 有没有办法避免每次在 R 中安装软件包?

r - 安装自定义包时在 'lib.loc' 中未找到库树

r - 使用Docker文件从源代码安装R软件包

r - 无法安装面板包