example r dependencies package

example - ¿Cómo instalar dependencias al usar "R CMD INSTALL" para instalar paquetes R?



r documentation (5)

Afortunadamente Devtools proporciona una solución fácil: install_deps()

install_deps (pkg = ".", dependencies = logical, threads = getOption ("Ncpus", 1))

Argumentos:
paquete: descripción del paquete, puede ser ruta o nombre del paquete. Consulte ''como.paquete'' para más información

dependencias: ''lógico'' que indica que también se instalan paquetes desinstalados de los que depende este ''pkg'' / enlaces a / sugiere. Ver argumento ''dependencias'' de ''install.packages''.

subprocesos: cantidad de subprocesos simultáneos que se usarán para instalar dependencias. Se predetermina a la opción '''' Ncpus '''' o ''1'' si no está configurado.

Ejemplos:

install_deps(".") install_deps("/path/to/package",dependencies="logical")

Estoy desarrollando mi primer paquete R (usando R 2.13, Ubuntu 10.10). Llamémoslo foo y digamos que el código en el directorio R / comienza con la biblioteca de línea (barra) , donde la barra es un paquete existente, en CRAN, de lo cual depende foo . Mi archivo DESCRIPTION contiene la línea:

Depends: bar

Cuando el paquete foo está listo para la prueba, lo instalo localmente usando:

R CMD INSTALL foo_1.0.tar.gz

Sin embargo, si la barra no está instalada, veo:

ERROR: dependency ‘bar’ is not available for package ‘foo’

Obviamente, si mi foo fuera instalado desde CRAN utilizando install.packages (), la barra se instalaría al mismo tiempo. Entonces mi pregunta es: ¿cómo puedo asegurar que la barra del paquete CRAN esté instalada, si es necesario, cuando instalo mi paquete foo usando R CMD INSTALL? ¿Es esto un trabajo para un script de configuración?


El mecanismo para hacer esto es agregar una entrada en el campo de los DESCRIPTION en su archivo DESCRIPTION .

Depends: bar

Esto cargará la biblioteca de bar si ya está instalada, de lo contrario la instalará desde CRAN.

Esto se describe en la sección 1.1.1 del manual de Writing R extensions : http://cran.r-project.org/doc/manuals/R-exts.html#The-DESCRIPTION-file


En realidad, volver a leer la guía de extensiones R, no dice que R CMD INSTALL obtendrá dependencias de CRAN. El método install.packages () desde dentro de R lo hará, pero a primera vista no creo que R CMD INSTALL lo haga.

Puede usar install.packages para instalar desde .tar.gz, pero debe establecer repos = NULL, y luego se aplica:

dependencies: logical indicating to also install uninstalled packages on which these packages depend/suggest/import (and so on recursively). Not used if repos = NULL.

Sospecho que lo que hay que hacer es sacar las dependencias del archivo DESCRIPCIÓN y luego ejecutar R y hacer un install.packages () en esas cuando está probando su compilación en un entorno limpio.


Similar a @Jonathan Le, pero es mejor para el uso de scripts:

sudo R --vanilla -e ''install.packages("forecast", repos="http://cran.us.r-project.org")''


Terminé simplemente usando un documento bash here y especificando el espejo de la nube para encontrar las dependencias:

sudo R --vanilla <<EOF install.packages(''forecast'', repos=''http://cran.us.r-project.org'') q() EOF

el paquete R es "pronosticado", el espejo de la nube que utilicé fue http://cran.us.r-project.org . Si desea utilizar un espejo diferente, aquí están todos: https://cran.r-project.org/mirrors.html

Lo anterior funcionó para mí en la obtención de paquetes R en un script de shell AWS EMR bootstrap.