2012-08-08 22 views
6

Estoy bastante seguro de que esto no es posible, porque si lo fuera, entonces CRAN tendría R Linux en paquetes binarios. ¿Por qué no es posible? Podemos crear versiones binarias Mac y Windows de paquetes R, y estos archivos tgz/zip podrían instalarse en diferentes sistemas. ¿Por qué no podemos hacer lo mismo con Linux?¿Cree R paquetes binarios para Linux que se puedan instalar en diferentes máquinas?

que supongo porque hay muchas distribuciones diferentes, y cada uno es diferente distribución. ¿Es posible crear archivos binarios para Debian/Ubuntu y RHEL/CentOS?

Si es posible, ¿cómo lo hacemos? Gracias.

+0

Hay una [Descargar para Linux R] (http://cran.r-project.org/bin/linux/) enlace de la [página web CRAN] (http://cran.r-project.org/) ... ¿no es eso lo que estás buscando? –

+0

Creo que están preguntando por qué en Linux todos los paquetes se instalan desde la fuente en lugar de tener algún tipo de binario disponible. – Dason

+1

@Dason: pero los binarios están disponibles. Tenga en cuenta todos los archivos 'r-cran. *. Deb' [aquí] (http://cran.r-project.org/bin/linux/ubuntu/precise/). No hay binarios para cada paquete para cada sabor de Linux, porque eso requeriría una gran cantidad de mantenimiento. –

Respuesta

9

Distintos lanzamientos de compiladores, diferentes lanzamientos de libc/libstC++, diferentes lanzamientos de "otras bibliotecas", diferentes ciclos de liberación por distribución, ... hacen que no se pueda alcanzar ese objetivo con el enlace dinámico.

Puedes llegar a mitad de camino, como p. RStudio lo hace a) agrupando todos sus dependencias yb) subconjuntos que reflejan como lo hacen para Debian/Ubuntu y RH/FC/CentOS. Pero con a) los tarballs se volverían masivos, como lo serían con enlaces estáticos.

En resumen: no es posible en Linux. Así que de regreso a las fuentes es.

+0

Entonces, ¿hay paquetes binarios para Mac y Windows porque el núcleo R usa un único compilador para construir R en cada plataforma (Xcode y MinGW), por lo que los paquetes se crean de la misma manera y pueden transferirse de una máquina a otra? Gracias Dirk. –

+1

@Dirk Estamos usando Docker para implementar aplicaciones brillantes usando rocker/shiny ('debian: testing'). Los tiempos de construcción son largos debido a la compilación de paquetes. Dado que el sistema Linux objetivo siempre es el mismo, ¿hay alguna forma de crear nuestro propio espejo CRAN con paquetes precompilados para nuestra versión específica de Linux? ¿O hay una solución similar que lograría el mismo objetivo? ¡Gracias! – RobinL

+1

Sí, puedes. Solía ​​haber un servicio para eso (google "cran2deb"), y estamos tratando de reconstruir uno. Sin embargo, no estará listo "pronto". Pero puedes hacer un proxy mucho a nivel local. –

Cuestiones relacionadas