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óndependencias: ''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.