2010-01-31 22 views
25

Al instalar paquetes R (digamos mcmcpack en este ejemplo) en Ubuntu tengo la opción entre los siguientes dos métodos de instalación:R: apt-get install r-cran-foo vs. install.packages ("foo")

# 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:

  • es cualquiera de las dos formas de instalar paquetes de R considerados "mejores prácticas"?
  • Supongamos que primero install.packages("mcmcpack") y más tarde en apt-get install r-cran-mcmcpack - ¿Debería esperar problemas?
  • Supongamos que primero apt-get install r-cran-mcmcpack y más tarde en install.packages("mcmcpack") - ¿Debería esperar problemas?

Respuesta

28

No es tan fácil como parece.

  • apt-get update es bueno, siempre y cuando existan

    • paquetes - pero sólo hay alrededor de 150 o menos r-cran-* paquetes fuera de un grupo de paquetes en 2100+ CRAN, la cobertura de manera más bien escasa

    • paquetes se mantienen, libre de errores y actual

    • que son lo suficientemente contento con el bi -Informe comunicados por Ubuntu

  • install.packages() y más tarde update.packages() es bueno, siempre y cuando

    • que saben lo que se necesita para tener dependencias en tiempo de construcción (además r-base-dev) instalados

    • no te importa ejecutar update.packages() a mano, así como las actualizaciones apt-get.

En mi máquina de Ubuntu en el trabajo, voy con la segunda solución. Pero debido a que el primero 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 de si 'que debe esperar problemas': No, porque R_LIBS_SITE se encuentra en /etc/R/Renvironment sea

# 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 sus paquetes entran en /usr/local/lib/R/site-library mientras que los gestionados por apt entre en /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.

+0

Dirk, odio hacer de esto una pregunta independiente ... ¿Por qué algunos paquetes (por ejemplo, RODBC) solo se pueden instalar usando el método de instalación de apt-get? –

+0

¿Dónde? ¿Cómo? ¿Cuando? ¿Qué plataforma? No dude en enviar un correo electrónico a r-sig-debian, eso es para lo que lo tenemos (a pesar de que SO fanboy-ism). –

+0

¿Te "extrañaste" el paquete de desarrollo odbc, etc.? Bueno, eso sería _por qué_ comenzamos a proporcionar estos. RODBC fue en realidad uno de los primeros paquetes que incluí ... –

4
  • me gustaría considerar el uso de las mejores prácticas ya apt-get obtendrá actualizaciones automáticas a través de las herramientas del sistema estándar.

  • Tener 2 versiones instaladas puede llevarlo a situaciones confusas: dependiendo de su configuración R, puede cargar otra versión del paquete que espera: su impresora privada (quizás obsoleta) debería cargarse primero.

  • Ver arriba.

+0

o vea la respuesta de Dirk para la historia completa –

Cuestiones relacionadas