Downgrade R unter FreeBSD 13.1

bsd4me

Well-Known Member
Hi...

ich habe eine Applikation, die bisher unter FreeBSD 11.4 und shiny / R-4.0.2 lief. Zum testen habe ich sie auf einem testsystem unter FreeBSD 13.1 und R 4.2.1 "kopiert".

Leider gibt es nun folgende Fehlermeldungen:

- Warning: Error in [[: attempt to select less than one element in get1index
97: renderUI [/path/to/appl/server.R#30]
- Warning: Error in if: the condition has length > 1
112: graphPlot 101: renderPlotly [/path/to/appl/server.R#198]

Ein Kollege sagte mir, dass evtl. ein downgrade helfen könnte (z.B. auf R-4.1.3). Hat jemand von Euch das schon mal auf FreeBSD gemacht? FireeBSD 13.1 bietet halt "nur" im Repo die Version 4.2.1 an...

Viele Grüße, Norbert
 

obsigna

Active Member
Zu R kann ich nichts sagen.

Ganz generell kann man im Prinzip beliebige ältere Ports über das freebsd-ports repository bei GitHub zurückholen - https://github.com/freebsd/freebsd-ports. Leider ist das nach der Umstellung der FreeBSD-Versionsverwaltung von Subversion auf Git ein bisschen umständlicher, aber mit der SVN-Magic-Number 1267273 geht es via GitHub doch mit ein paar Klicks mehr.

 1) Im vorliegenden Fall navigiert man in das R-Verzeichnis

 2) Man klickt auf das History-Symbol (rechts in der Titelleiste des Verzeichnisinhalts), und findet in der Liste die gesuchte ältere Version, hier 4.1.3 (der 4. Eintrag von oben).

 3) In der betreffenden Zeile klickt man ganz rechts auf den <>-Button (Browse the repository at this point in the history).

 4) Auf dieser Seite notiert man sich die Anzahl der Commits (rechts in der Titelleiste des Verzeichnisinhalts) - hier 577008 (ohne Komma, das ist das US-en tausender Komma)

 5) Man addiert die Commit-Anzahl auf die SVN-Magic-Number und erhält die SVN-Revisionsnummer des betreffenden Git-Commits - hier 1267273 + 577008 = 1844281. Den Browser kann man jetzt schließen, denn wir wollten nur diese Nummer.

 6) Nun im Terminal auf der FreeBSD-Maschine erzeugt man sich der guten Ordnung halber ein Verzeichnis mit lokalen Ports, ich mache das immer direkt unter /root/ports, aber das ist Geschmacksache: # mkdir -p ~/ports/math/; cd ~/ports/math/

 7) Falls noch nicht vorhanden installiert man Subversion: # pkg install subversion

 8) # svn checkout -r 1844281 https://github.com/freebsd/freebsd-ports.git/trunk/math/R R

 9) Schließlich installiert man den betreffenden alten Port so wie man es mit den regulären Ports auch tun würde, im vorliegenden Fall also:
# cd /root/ports/math/R
# make reinstall clean
 

bsd4me

Well-Known Member
Hallo Obsigna,

vielen Dank für die ausführliche Anleitung :-) Ich bin gerade damit fertig geworden, aber ein einfacherer Weg war, die R-4.1.3 Sources zu nehmen, das ganze als "normaler" User auszupacken und zu compilieren. Dann mit dieser R Version alle notwendigen Pakete zu installieren. Hat ein bisschen gedauert - aber es tut es nun :-)

Viele Grüße, Norbert
 
Die Fehlermeldung deutet aber klar auf einen Programmierfehler hin:

 

bsd4me

Well-Known Member
ja, das mag stimmen - aber ich bin nicht der Entwickler und kenne mich mit R nicht gut aus... es stand nur die Aufgabe an, das System mal "upzugraden" :-)
 
Oben