Установка пакетов 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
... и по кроличьей норе мы идем...