Установка пакетов R из локального репозитория (все файлы.tar.gz были загружены туда)

Доброе утро из Австралии,

Поскольку наши компьютеры на работе не имеют доступа к Интернету, я попросил нашего ИТ-менеджера загрузить все пакеты R и поместить их в общую сетевую папку. С тех пор я перенес эти 4 ГБ пакетов в мой локальный каталог:E: /R-3.3.1/MyRPackages/src/contrib / ______. Tar.gz

Я хотел бы, чтобы мои пакеты были установлены в E:\R-3.3.1\library

Я использую 64-разрядную версию Windows 7 Professional, а также 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", зависимости = 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", зависимости = ИСТИНА,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", зависимости = ИСТИНА,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 'имеет ненулевой статус выхода

2 ответа

Немного поясним ответ @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)

Метод 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"      

Без подключения к Интернету ваш IT-менеджер должен также загрузить пакеты зависимостей и установить их в соответствующем порядке. Когда вы проходите repos = NULL к install.packages функция, им некуда искать эти зависимости.

Поскольку каждая из этих зависимостей может иметь свои собственные зависимости *, это, вероятно, в конечном итоге станет серьезной болью в заднице вашего ИТ-менеджера (да, я тоже в Австралии!). Могу ли я предложить вам организовать временное подключение к Интернету на вашем компьютере? В противном случае, возможно, стоит взглянуть на Packrat, который должен (я раньше не использовал его сам) позволять вашему ИТ-менеджеру создавать проект с необходимыми пакетами (включая их зависимости), встроенными в него. Затем вы можете использовать это для установки пакетов на вашем компьютере.

  • например, пакет httr от которого зависит devtools, само зависит от mime, curl, openssl, а также R6... mime затем зависит от tools... и по кроличьей норе мы идем...
Другие вопросы по тегам