Мне интересно, есть ли способ использовать install.packages ()
или другие связанные функции для выполнения следующих действий: загружать только исходники (то есть tar.gz
файлов) указанных пакетов и всех их зависимостей в указанную папку (в Windows).
Одна из причин для этого: скажем, у меня есть учетная запись Linux, которой нет включен для доступа в Интернет. Чтобы установить пакеты на машину Linux, я сначала загрузил все необходимые исходные файлы на свой компьютер с Windows, затем перебросил их по ftp на машину Linux и установил их на машине Linux, используя
install.packages('/home/me/R/Packages/blah.tar.gz', repos = NULL)
У меня недавно была проблема, когда я хотел загрузить все зависимости, и я решил ее следующим образом:
Скажем, я хочу все зависимости и импорт из ggplot2
и MASS
:
getPackages <- function(packs){
packages <- unlist(
tools::package_dependencies(packs, available.packages(),
which=c("Depends", "Imports"), recursive=TRUE)
)
packages <- union(packs, packages)
packages
}
packages <- getPackages(c("ggplot2", "MASS"))
Теперь я могу загрузить пакеты в другой каталог.
download.packages(packages, destdir="whereyouactuallywantthefiles",
type="source")
Оттуда, если вы хотите сделать локальное репо на вашем ПК с Linux, следуйте инструкциям здесь .