2011-09-24 22 views
10

¿Cuál es la lógica detrás de las diferentes ubicaciones de instalación de varios paquetes R? Parece que tengo paquetes instalados en varias ubicaciones diferentes en mi máquina Linux. ¿Es este el comportamiento típico y, en caso afirmativo, cuál es la racionalidad para instalar un paquete en/usr/lib/R/library vs/usr/lib/R/site-library? Realmente no me importa dónde está instalado el paquete, pero parece un poco tonto tener las instalaciones repartidas en diferentes lugares de mi sistema.Lógica de la ubicación de instalación de los paquetes R en Linux

Renviron tiene el comentario a continuación, que parece sugerir que/usr/lib/R/site-library es para paquetes empaquetados de Debian, pero realmente no explica el propósito de los otros dos directorios. Además, si configura/usr/lib/R/library al final de la lista, ¿no lo convierte en el directorio predeterminado para install.packages()?

# edd Apr 2003 Allow local install in /usr/local, also add a directory for 
#    Debian packaged CRAN packages, and finally the default dir 


> .libPaths() 
[1] "/usr/local/lib/R/site-library" "/usr/lib/R/site-library"  
[3] "/usr/lib/R/library"  

Respuesta

8

Matt,

Se generaliza el camino equivocado de lo específico (Debian/Ubuntu) al genérico (todas las distribuciones de Linux).

Esta configuración en particular me fue sugerida por dos miembros de R-Core que usan Debian (y esto fue antes del comienzo de Ubuntu). Esto es no una recomendación de ancho de banda, que es la razón por la que no lo encontrará en los manuales, sino una recomendación específica de los usuarios de R Power para implementarse en sistemas Debian y Debian-like.

La idea básica es

  • para seguir siendo totalmente fiel a la separación de /usr/, /var/, .... para ser manejado por el sistema de gestión paquete (por ejemplo apt-get, dpkg, ...), por un lado, y /usr/local/... etc por el usuario, por otra parte: estos dos serán nunca se mezcla

  • modo que /usr/local/lib/R/site-library obtiene los abetos t lugar en la lista emitida por .libPaths() y por lo tanto se convierte en el valor predeterminado, asegurando así que el paquete instalado por el usuario terminará por debajo /usr/local/ según el punto anterior

  • de manera que a continuación /usr obtenemos una separación entre R recomienda envasado (incluido en las fuentes básicas de I también: boot, grid, lattice, ...) dentro /usr/lib/R/library, y luego el resto de la gestión paquete controladosr-cran-* paquetes continuación /usr/lib/R/site-library. Por ejemplo, r-cran-xml termina allí, o r-cran-zoo, o ...

sigo pensando que la división es fenomenal, y es por eso que mantener esta configuración en los paquetes de Debian R.

Tener los paquetes locales en todo el sitio para todos los usuarios es una buena idea en un sistema operativo multiusuario.

+0

Bien gracias. Pensé que probablemente había una razón para las divisiones que yo, como usuario de Linux (Ubuntu) relativamente nuevo, no entendí. –

Cuestiones relacionadas