Domanda

Il nostro server, R 2.12.1 viene installato seguendo le istruzioni su http: //cran.r- project.org/bin/linux/debian/ , utilizzando apt-get install ecc ecc.

A causa di circostanze la vecchia macchina lenny non è stato aggiornato per il nuovo debian stabile, e sembra che questo non sta per accadere presto. Come alcune delle ricerche qui dipende l'ultima versione di VGAM, abbiamo bisogno del R 2.14.0 installato su debian. Ma al fine di mantenere il vecchio codice in esecuzione, non possiamo solo cadere il R 2.12.1 (installando il VGAM 0.8.4 su questa versione dà errori).

Quindi abbiamo bisogno di installare 2 R versioni. Da quel poco ho capito, se usiamo apt-get upgrade la vecchia versione sarà sostituito dal nuovo. Vado attraverso cumuli di documentazione, ma non riesco a trovare il modo ottimale di farlo.

L'unica cosa che potevo immaginare ora, è quello di cercare di costruire l'ultima R dalla sorgente, ma i miei colleghi non erano molto appassionato di questa idea e mi ha spinto a primo sguardo per un'altra soluzione. Qualsiasi informazioni che ho perso, o è qualcuno disposto a farmi vedere il piccolo trucco per ottenere questo fatto? Se la costruzione dalla sorgente è la soluzione, mi piacerebbe conoscere le insidie ??o possibili problemi.

È stato utile?

Soluzione

Come ho già detto nei commenti, questo è teoricamente possibile, proprio come alcune famiglie del pacchetto (Emacs, PostgreSQL, ...) consentono più versioni simultanee.

Non posso offrire che in questo momento, come si usa /usr/{share,lib}/R cui i conflitti. Se dovessi fare che /usr/{share,lib}/R-$version e quindi utilizzare dpkg-alternatives a flip per un default preferito uno, potremmo forse farlo. Il problema è la transizione. Questa funzione viene utilizzata da una minoranza di utenti, di arrivare a esso può introdurre bug per la maggior parte til questo è stabile. Inoltre, non ho tempo libero (ma se qualcun altro vuole farlo, si prega di farlo).

Nel frattempo, puoi

  1. eventualmente utilizzare una funzione avanzata di dpkg e decompresso in una cartella locale piuttosto il valore di default di sotto / - così /opt/R/oldversions/2.12.1 dovrebbe essere possibile. R potrebbe anche funzionare, è necessario ridefinire $RHOME di conseguenza.

  2. solo costruire varianti locali in /usr/local se davvero deve

  3. Se un particolare CRAN / reclami pacchetto non CRAN a bisogno di una particolare versione di R, fissare il pacchetto maledetto già! ; -)

Infine, questo è un argomento per r-sig-debian come ad esempio il manutentore CRAN Michael e Johannes non leggere questo thread qui.

Altri suggerimenti

È possibile installare diverse versioni di qualsiasi software utilizzando flag di compilazione corretta. Quando si esegue lo script di configurazione con --help si dovrebbe vedere la possibilità di vedere l'installazione radice.

Date un'occhiata a

./configure --help
...
Installation directories:
  --prefix=PREFIX         install architecture-independent files in PREFIX
                          [/usr/local]

in modo è possibile installare R-2.14 a:

/usr/local/R/2.14

ed è possibile installare R-2.12 a:

/usr/local/R/2.12

quando si avvia lo script di configurazione fare:

./configure --prefix=/usr/local/R/2.14

e così via.

Credo che se non v'è alcuna repo debian che fornisce più versioni, è difficile mantenere due versioni di R intoppi senza compilare R dalla sorgente.

Quello che faccio spesso è installare R nella mia home directory come il nostro istituto non ci dà i privilegi di root. Per installare una versione fonte di R systemwide, è possibile installare questo in una directory separata (ad esempio /opt/R2.14) ed impiego:

./configure --prefix=/opt/R2.14/

Il passo finale è quello di creare un collegamento simbolico al binario R:

ln -s /opt/R2.14/bin/R /usr/bin/R2.14

Gli utenti possono iniziare di due versioni di R (R e R2.14). Spero che questo aiuti!

E 'vero che la costruzione di R dalla sorgente è molto molto facile (anche io posso farlo!), Fino a quando si conosce il seguente comando per eseguire prima:

apt-get build-dep r-base

altrimenti si potrebbe ottenere manca errori di tipo libreria da make. Grazie a Dirk distacco quella gemma in passato. Non ho visto che nel manuale, README o FAQ.

Quindi, è solo:

./configure
make

Suppongo che questo potrebbe essere una considerazione per voi allora: does librerie uso R statiche o dinamiche di sistema? Si potrebbe prevedere un collegamento R auto-costruito di diverse librerie rispetto al pre-confezionati binario R? (Non lo so). Quanto si entra in questo dipende dalla critica l'applicazione di R è immagino e che le librerie di sistema sono fondamentali per voi.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top