Wie installiere ich 2 verschiedene R -Versionen auf Debian?
-
27-10-2019 - |
Frage
Auf unserem Server ist R 2.12.1 gemäß den Anweisungen auf installiert http://cran.r-project.org/bin/linux/debian/ , verwenden apt-get install
usw. usw.
Aufgrund der Umstände wurde die alte Lenny -Maschine nicht auf das neue stabile Debian aktualisiert, und es sieht so aus, als würde dies nicht bald passieren. Da einige der Forschungsergebnisse hier von der neuesten Version von VGAM abhängen, benötigen wir die auf Debian installierte R 2.14.0. Um den alten Code laufen zu lassen, können wir den R 2.12.1 nicht einfach fallen lassen (die Installation des VGAM 0.8.4 in dieser Version gibt Fehler an).
Wir müssen also 2 R-Versionen installieren. Von dem kleinen, das ich verstand, wenn wir nur benutzen apt-get upgrade
Die alte Version wird durch das neue ersetzt. Ich habe viele Dokumentation durchgemacht, aber ich kann die optimale Möglichkeit nicht finden.
Das einzige, was ich mir jetzt vorstellen kann, ist zu versuchen, das neueste R aus der Quelle aufzubauen, aber meine Kollegen waren nicht sehr sehr an dieser Idee interessiert und veranlassten mich, zuerst nach einer anderen Lösung zu suchen. Irgendwelche Informationen, die ich verpasst habe, oder ist jemand bereit, mir den kleinen Trick zu zeigen, um dies zu erledigen? Wenn das Gebäude aus der Quelle die Lösung ist, würde ich gerne über Fallstricke oder mögliche Probleme hören.
Lösung
Wie ich in Kommentaren erwähnt habe, ist dies theoretisch möglich, genau wie einige Paketfamilien (EMACs, PostgreSQL, ...) können mehrere gleichzeitige Versionen zulassen.
Ich kann das momentan nicht anbieten, wenn wir verwenden /usr/{share,lib}/R
welche Konflikte. Wenn ich das machen würde /usr/{share,lib}/R-$version
und dann verwenden dpkg-alternatives
Um zu einem bevorzugten Standard zu fliehen, könnten wir es möglicherweise tun. Das Problem ist der Übergang. Diese Funktion wird von einer Minderheit des Benutzers verwendet, und das Erreichen von IT kann Fehler für eine Mehrheit vorstellen, bis dies stabil ist. Außerdem habe ich nicht die Freizeit (aber wenn jemand anderes es tun möchte, tun Sie dies bitte).
In der Zwischenzeit können Sie
Verwenden Sie möglicherweise eine erweiterte Funktion von
dpkg
und Auspacken Sie in ein lokales Verzeichnis, ärger die folgende Standardeinstellung/
-- Also/opt/R/oldversions/2.12.1
sollte möglich sein. R könnte sogar laufen, Sie müssen neu definieren$RHOME
entsprechend.Bauen Sie einfach lokale Varianten auf
/usr/local
wenn du Ja wirklich mussWenn ein bestimmtes Cran / Nicht-CRAN-Paket behauptet, eine bestimmte Version von R zu benötigen, beheben Sie das verdammte Paket bereits! ;-)
Schließlich ist dies ein Thema für r-sig-debian
Wie zB der Cran -Betreuer Michael und Johannes werden diesen Thread hier nicht lesen.
Andere Tipps
Sie können verschiedene Versionen jeder Software mit ordnungsgemäßen Kompilierflags installieren. Wenn Sie das Skript Konfigurieren mit -HELP ausführen, sollten Sie eine Option zum Installieren von Root sehen.
Sich ansehen
./configure --help
...
Installation directories:
--prefix=PREFIX install architecture-independent files in PREFIX
[/usr/local]
Sie können also R-2.14 installieren, um:
/usr/local/R/2.14
und Sie können R-2.12 installieren, um:
/usr/local/R/2.12
Wenn Sie das Konfigurationsskript starten, tun Sie:
./configure --prefix=/usr/local/R/2.14
usw.
Ich denke, wenn es kein Debian -Repo gibt, das mehrere Versionen liefert, ist es schwierig, zwei Versionen von R reibungslos zu halten, ohne R aus der Quelle zu kompilieren.
Was ich oft mache, ist, R in meinem Heimat -Dir zu installieren, da unser Institut uns keine Wurzel Privilegien gibt. Um eine Quellversion von R Systemwide zu installieren, können Sie diese in einem separaten Verzeichnis (z. B. /opt/r2.14) installieren und verwenden:
./configure --prefix=/opt/R2.14/
Der letzte Schritt besteht darin, einen symbolischen Link zum R -Binary zu erstellen:
ln -s /opt/R2.14/bin/R /usr/bin/R2.14
Benutzer können als zwei Versionen von R (R und R2.14) starten. Hoffe das hilft!
Es ist wahr, dass das Erstellen von R aus der Quelle sehr einfach ist (auch ich kann es tun!), Solange Sie den folgenden Befehl kennen, um zuerst auszuführen:
apt-get build-dep r-base
Andern make
. Vielen Dank an Dirk, das dieses Juwel in der Vergangenheit veröffentlicht hat. Ich habe das nicht im Handbuch, im Readme oder im FAQ gesehen.
Dann ist es nur:
./configure
make
Ich nehme an, dies könnte dann eine Überlegung für Sie sein: Verwendet R statische oder dynamische Systembibliotheken? Könnte ein selbst gebautes R-Link zu verschiedenen Bibliotheken als der vorverpackte binäre R? (Ich weiß nicht). Wie viel Sie darauf einlassen, hängt davon ab, wie kritisch Ihre Anwendung von R ist und welche Systembibliotheken für Sie von entscheidender Bedeutung sind.