paquetes comando r packages

r - comando - paquetes debian



Solo descarga las fuentes de un paquete y todas las dependencias. (3)

Me pregunto si hay una manera de usar install.packages() u otras funciones relacionadas para hacer lo siguiente: solo descargar las fuentes (es decir, los archivos tar.gz ) de los paquetes especificados y todas sus dependencias en una carpeta específica (en Windows) .

Una razón para hacer esto es: digamos que tengo una cuenta de Linux que no está habilitada para el acceso a Internet. Para instalar los paquetes en la máquina Linux, primero descargo todas las fuentes necesarias en mi máquina Windows, luego las transfiero a la máquina Linux y las instalo en la máquina Linux usando

install.packages(''/home/me/R/Packages/blah.tar.gz'', repos = NULL)


Hace poco tuve un problema en el que quería descargar todas las dependencias y lo resolví así:

Digamos que quiero todas las dependencias e importaciones de ggplot2 y 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"))

Ahora puedo descargar los paquetes a otro directorio.

download.packages(packages, destdir="whereyouactuallywantthefiles", type="source")

Desde allí, si desea hacer un repositorio local en su PC con Linux, siga las instrucciones here .


Pruebe download.packages(c("xts", "rms"), "c:/TEMP", .....) lugar de install.packages() ; Puede asignarle directamente un directorio de destino en el segundo argumento.

Edite varios años después: como se indicó anteriormente en otras respuestas y comentarios, ya se han agregado varias funciones de ayuda a las herramientas de R y los paquetes de herramientas. R 3.4.0 tendrá tools::CRAN_package_db() para descargar el archivo PACKAGES.rds nivel superior (y, por supuesto, también puede combinar download.file() y readRDS() para eso también).


Ahora hay mejores opciones para esto en el paquete de herramientas que viene con base R: package_dependencies() . Consulte, por ejemplo, la Respuesta de @ sebastian-c y estas Preguntas y respuestas recientes para un caso de uso relacionado.

Hay una función getDependencies() en el paquete utils. No he estudiado cómo funciona, pero combinar eso con @ Dirk''s Answer debería ayudarte a llegar hasta allí.

Básicamente, sin embargo, parece que lo usas como:

utils:::getDependencies(pkgs, dependencies, available, lib)

donde pkgs es el vector de caracteres de los paquetes a instalar, las dependencies son un vector de caracteres de los tipos de dependencias (Depends, Enhances, etc.) que usted desea, available es el resultado de available.packages() y lib es la ubicación de la biblioteca para los paquetes dentro de Que dependencias se evalúan.

Si depura install.packages() básicamente está realizando el paso getDependencies() luego el paso @ download.packages() Dirk antes de que realmente comience a instalar algo.