Holen Sie sich die neueste Version von R auf dem Raspberry Pi

8

Ich habe einen Raspi, auf dem Debian Jessie ausgeführt wird (heruntergeladen von der offiziellen Raspberry-Download-Website (Version 2015-11-21)). Für eines meiner Projekte möchte ich die Software r und einige der sehr nützlichen Pakete verwenden (data.table und ggplot2, wenn Sie wissen wollen). Für diese Pakete ist jedoch die neueste R-Version erforderlich (derzeit 3.2.3 laut CRAN , zumindest für Windows). Die offizielle Debian Package Site listet 3.1.1 als neueste Version auf.

Wenn ich laufen sudo apt-get update, und dann sudo apt-get install r-basegefolgt von sudo Rich sehe , dass ich Version 3.1.1 installiert ist (also install.packages("data.table")in R zurückkehrt , dass es nicht für diese ältere Version nicht vorhanden ist ).

Meine Frage lautet nun: Wie kann ich die neueste Version von R (3.2.3) installieren oder alternativ wie kann ich die beiden Pakete installieren?

Erster Versuch Ich habe versucht, der offiziellen Beschreibung auf der CRAN-Site zu folgen (der Link funktioniert nicht richtig, Sie müssen sich durchklicken: Laden Sie R für Linux herunter -> Debian und scrollen Sie dann nach unten zu "Unterstützte Zweige" und "Jessie". Dort habe ich Jessie-Benutzern Ratschläge gegeben. Ich habe sudo nano /etc/apt/sources.listdie Zeile hinzugefügt deb http://cran.rstudio.com/bin/linux/debian jessie-cran3/und dann versucht, sie erneut zu installieren (nachdem ich sie mit entfernt habe sudo apt-get remove r-base) sudo-apt-get install r-base. Aber ich habe den folgenden Fehler erhalten:

Fehlermeldung

Was vermisse ich / mache ich falsch? Vielen Dank für alle Ideen / Hilfe / Ratschläge.

David
quelle

Antworten:

8

Was ich tat, war Sudo Nano /etc/apt/sources.listund fügte die Linie hinzudeb http://cran.rstudio.com/bin/linux/debian jessie-cran3/

Beachten Sie, dass Binärpakete von dort, wie der R-Interpreter selbst, nur auf bestimmten Architekturen funktionieren, vermutlich mindestens x86 und x86_64.

Sie benötigen jedoch eine für ARMv6 kompilierte. Wenn Sie einen Pi 2 verwenden, können Sie auch ARMv7 verwenden, was üblicher ist, aber wahrscheinlich immer noch nicht im Repository verfügbar ist.

Aus diesem Grund können Sie durch Hinzufügen dieses Repos die R-Version nicht aktualisieren. Sie würden und können nicht über die richtigen Abhängigkeiten für ein x86 (-64) -Binärpaket verfügen, sodass Ihnen die höhere Version nicht angeboten werden kann.

Es kann reine R-Pakete von dort geben, die Sie verwenden können, aber wenn sie von einer höheren Version des Interpreters abhängen, müssen Sie diese natürlich zuerst irgendwo finden.


Es scheint ein R 3.2 zu geben. 2 im Raspbian Stretch (Test) Repo. Ich habe eine B-Laufstrecke und hatte keine Probleme. Um dies zu installieren, müssen Sie bearbeiten /etc/apt/sources.list; es enthält wahrscheinlich jetzt:

deb http://mirrordirector.raspbian.org/raspbian/ jessie main contrib non-free rpi

Am stretchEnde dieser Liste hinzufügen. Sie sollten nun in der Lage sein, die hier erläuterte Logik anzuwenden , obwohl dies geschrieben wurde, als "jessie" getestet wurde und "wheezy" stabil war.

Goldlöckchen
quelle
Auf CRAN heißt es: "Es gibt i386- und amd64-Binärdateien für Jessie, Keuchen, Squeeze. Seit R 3.1.0 ist R auch für Arm- und Armel-Binärdateien für Jessie und Keuchen voll funktionsfähig."
David
Ja, Debian verwendet i386und amd64wo ich x86 und x86-64 verwendet habe, aber sie beziehen sich auf das gleiche. Die erste ist die normative Intel 32-Bit-Architektur auf PCs. Die zweite ist die mittlerweile weit verbreitete AMD / Intel 64-Bit-Architektur. Keiner von beiden ist mit den von Raspberry Pis verwendeten ARMv6 / 7-Prozessoren kompatibel. Ein Problem ist, dass die Debian- armBinärdateien ARMv7 sind.
Goldlöckchen
... während Raspbian wirklich ein ARMv6-Betriebssystem ist, unabhängig davon, auf welchem ​​Pi Sie es verwenden. Wenn Sie also auf einem Pi 2 sind und dieses armPaket erhalten können, können Sie es versuchen, aber es gibt keine Garantien. Wenn Sie ein anderes Modell verwenden, können Sie das armelPaket ausprobieren , aber es funktioniert möglicherweise erneut oder nicht. Das Installationsprogramm ( apt) wird sich wahrscheinlich weigern, dies für Sie zu tun, was es umständlich macht.
Goldlöckchen
Das ist eine sehr gute (wenn auch möglicherweise verheerende (?)) Antwort. Danke dafür! Daran führt kein Weg vorbei (außer dem Versuch, die Pakete / Programme aus dem Quellcode neu zu kompilieren). Gibt es andere Mikrocomputer (Arduino, Raspi usw.) mit einer kompatiblen Architektur?
David
1
Okay, es gibt 3.2.2: / Siehe das oben bearbeitete Zeug am Ende.
Goldlöckchen
7

[Eine Antwort hinterlassen, da ich noch keine Kommentare schreiben kann]

Ich habe die Anweisungen von @goldilocks (akzeptierte Antwort) auf einem brandneuen Raspberry Pi 3 (September 2016) mit Raspbian Jessie befolgt und alles hat wie erwartet funktioniert.

Ich hatte zuvor die Version von R installiert, die im Raspbian-Repo verfügbar war, nämlich 3.1.1. - zu alt für viele Pakete! Ich habe einfach geöffnet /etc/apt/source.listund eine zusätzliche Zeile hinzugefügt:

deb http://archive.raspbian.org/raspbian/ stretch main

Dann

sudo apt-get update
sudo apt-get install r-base r-base-core r-base-dev

Wenn ich jetzt Rein Terminalfenster betrete, erhalte ich 3.3.1. Während der Installation habe ich gesehen, dass die neue Installation die alte 3.1.1 ersetzt hat.

n1k31t4
quelle
Dies funktioniert (danke, ich habe jetzt R v3.3.2), aber es installiert / aktualisiert auch eine ganze Menge anderer Pakete, die möglicherweise nicht benötigt werden
Luke
Ich bin froh, dass es bei dir funktioniert hat! apt-getsollte nur die erforderlichen Pakete installieren, um die drei r-oben aufgeführten Pakete zu installieren (selbst dann sind aufgrund meiner Erfahrung nicht alle Systemabhängigkeiten garantiert enthalten). Wenn es Pakete gibt, die Sie nicht wirklich benötigen, kann dies ein Ergebnis des Entwicklungspakets sein r-base-dev. Sie können herausfinden, welche R-Pakete standardmäßig in eine Sitzung geladen werden, diese dann deinstallieren oder verhindern, dass sie in zukünftigen Sitzungen geladen werden.
n1k31t4
5

Update von Raspbian GNU / Linux 8 (jessie):

Die Linie

deb http://archive.raspbian.org/raspbian/ stretch main

funktioniert nicht (zumindest nicht von meinem RPi3)

Ersetzen Sie es jedoch durch

deb http://mirrordirector.raspbian.org/raspbian/ stretch main

hat funktioniert.

Sanyi Gözös
quelle