2012-08-08 11 views
6

Sono sicuro che questo non è possibile, perché se lo fosse, allora CRAN avrebbe pacchetti binari di R Linux. Perché non è possibile? Possiamo creare versioni binarie per Mac e Windows di pacchetti R, e questi file tgz/zip potrebbero essere installati su sistemi diversi. Perché non possiamo fare lo stesso per Linux?Creare pacchetti binari R per Linux che possono essere installati su macchine diverse?

Sto immaginando perché ci sono molte distro diverse, e ogni distro è diverso. È possibile creare file binari per Debian/Ubuntu e RHEL/CentOS?

Se è possibile, come lo facciamo? Grazie.

+0

C'è un collegamento [Scarica R per Linux] (http://cran.r-project.org/bin/linux/) nella [homepage di CRAN] (http://cran.r-project.org/) ... non è quello che stai cercando? –

+0

Penso che stiano chiedendo perché su Linux tutti i pacchetti siano installati dall'origine invece di avere una sorta di binario disponibile. – Dason

+1

@Dason: ma i binari _ sono disponibili. Nota tutti i file 'r-cran. *. Deb' [qui] (http://cran.r-project.org/bin/linux/ubuntu/precise/). Non ci sono binari per ogni pacchetto per ogni gusto di Linux, anche perché ciò richiederebbe una grande quantità di manutenzione. –

risposta

9

Diverse versioni del compilatore, diverse versioni di libc/libstC++, diverse versioni di "altra libreria", diversi cicli di rilascio per distro, ... fanno si che non sia possibile abbinare quell'obiettivo con il collegamento dinamico.

È possibile arrivare a metà strada come ad es. RStudio fa a) unire tutte le tue dipendenze eb) i sottoinsiemi che riflettono come fanno per Debian/Ubuntu e RH/FC/CentOS. Ma con a) i tarball diventerebbero enormi, come farebbero con il collegamento statico.

In breve: non è possibile su Linux. Quindi torna alle fonti lo è.

+0

Quindi ci sono pacchetti binari per Mac e Windows perché il core R utilizza un singolo compilatore per creare R su ogni piattaforma (Xcode e MinGW), e quindi i pacchetti sono costruiti nello stesso modo e quindi possono essere trasferiti da macchina a macchina? Grazie Dirk. –

+1

@Dirk Usiamo Docker per distribuire app lucide usando rocker/lucido ('debian: testing'). I tempi di compilazione sono lunghi a causa della compilazione dei pacchetti. Dato il sistema Linux di destinazione è sempre lo stesso, c'è un modo per creare il nostro mirror CRAN con pacchetti precompilati per la nostra specifica versione di Linux. O c'è una soluzione simile che raggiungerebbe lo stesso obiettivo? Grazie! – RobinL

+1

Sì, è possibile. C'era un servizio per questo (google "cran2deb"), e stiamo cercando di ricostruirne uno. Tuttavia non sarà pronto "presto". Ma puoi eseguire il proxy localmente. –

Problemi correlati