science - R: apt-get install r-cran-foo vs. install.packages("foo")
r for data science import tidy transform visualize and model data pdf (2)
Al instalar paquetes R (digamos mcmcpack
en este ejemplo) en Ubuntu, tengo la opción entre los siguientes dos métodos de instalación:
# Let the distribution''s packaging system take care of installation/upgrades
apt-get install r-cran-mcmcpack
# Let R take care of installation/upgrades
install.packages("mcmcpack")
Preguntas:
- ¿Alguna de las dos formas de instalar paquetes R se considera una "mejor práctica"?
- Supongamos que primero
install.packages("mcmcpack")
y luego enapt-get install r-cran-mcmcpack
- ¿debo esperar problemas? - Supongamos que primero
apt-get install r-cran-mcmcpack
y luego eninstall.packages("mcmcpack")
- ¿debería haber problemas?
No es tan fácil como parece.
apt-get update
es buena si y cuandoexisten paquetes, pero solo hay alrededor de 150 o más paquetes
r-cran-*
de un conjunto de más de 2100 paquetes en CRAN, por lo que la cobertura es bastante escasalos paquetes son mantenidos, libres de errores y actuales
estás satisfecho con los lanzamientos bianuales de Ubuntu
install.packages()
y posteriorupdate.packages()
es bueno si y cuandousted sabe lo que se necesita para tener instaladas dependencias de tiempo de compilación (además de
r-base-dev
)no te importa ejecutar
update.packages()
a mano, así como las actualizaciones deapt-get
.
En mi máquina Ubuntu en el trabajo, voy con la segunda solución. Pero como la primera es mejor si tiene suficiente cobertura , hemos creado cran2deb que proporciona más de 2050 paquetes binarios para amd64 e i386, pero solo para las pruebas de Debian. Eso es lo que uso en casa.
En cuanto a la última pregunta sobre si ''deberías esperar problemas'': No, porque R_LIBS_SITE
está configurado en /etc/R/Renvironment
para ser
# edd Apr 2003 Allow local install in /usr/local, also add a directory for
# Debian packaged CRAN packages, and finally the default dir
# edd Jul 2007 Now use R_LIBS_SITE, not R_LIBS
R_LIBS_SITE=${R_LIBS_SITE-''/usr/local/lib/R/site-library:/
/usr/lib/R/site-library:/usr/lib/R/library''}
lo que significa que los paquetes van a /usr/local/lib/R/site-library
mientras que los gestionados por apt
van a /usr/lib/R/site-library
y (en el caso de paquetes base) /usr/lib/R/library
.
Espero que aclare las cosas. La lista de correo r-sig-debian es un lugar más informado para preguntas como esta.
Consideraría usar
apt-get
best practice, ya que obtendrá actualizaciones automáticas a través de las herramientas estándar del sistema.Tener 2 versiones instaladas puede llevarte a situaciones confusas: dependiendo de tu configuración R, podrías cargar otra versión del paquete que esperas; en general, tu versión privada (quizás obsoleta) debería cargarse primero.
Véase más arriba.