首页 文章

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

提问于
浏览
0

澳大利亚早上好,

由于我们的工作中的计算机无法访问互联网,因此我将这些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“'在install.packages中有状态1警告:安装包'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/图书馆”)

错误:依赖'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“'在install.packages中有状态1警告:安装包'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/库“,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“'在install.packages中有状态1警告:安装包'E:/R-3.3.1/MyRPackages/src/ contrib / devtools_1.12.0.tar.gz'具有非零退出状态

2 回答

  • 2

    跟进@ rosscova的回答:有各种工具可用于确定包的完整递归依赖集 . 有了更多的工作,你可以编写一个脚本来 grab 它们(这确实很可能是由某人完成的,某个地方已经......)

    ## 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

    'print()'方法识别每个依赖包的本地和CRAN版本之间的不匹配(如果有的话);

    这意味着要获取完整的依赖项列表,您需要直接打印 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"
    
  • 0

    如果没有互联网连接,您还需要让IT经理下载相关性包,并以适当的顺序安装它们 . 当您将 repos = NULL 传递给 install.packages 函数时,它无处可查找这些依赖项 .

    由于这些依赖项中的每一个都可能具有自己的*的依赖关系,这可能最终成为您的IT经理屁股的主要痛苦(是的,我也在澳大利亚!) . 我建议你安排在你的机器上临时连接互联网吗?否则,也许看看Packrat,它应该(我之前没有使用它)允许您的IT经理创建一个项目,其中包含您需要的包(包括它们的依赖项) . 然后,您可以使用它在您的计算机上安装软件包 .

    • 例如,devtools所依赖的包 httr 本身取决于 mimecurlopensslR6 ... mime 然后继续依赖 tools ......然后我们走下兔子洞......

相关问题