Fehler in R: Verbindung zu X11 kann nicht geöffnet werden

9

Ich habe gerade eine Fedora-Distribution auf meinem Computer eingerichtet und versuche langsam, über die Befehlszeile zu lernen, wie man arbeitet. Ich habe getestet, Rwas gut gelaufen ist, außer aus irgendeinem Grund, als ich es erneut versuchte, schien ich plötzlich nicht mehr in der Lage zu sein, Handlungen zu zeichnen. Ich bekomme den Fehler:

> x = 1:5
> y = x^2
> plot(x,y)
No protocol specified
Error in X11(d$display, d$width, d$height, d$pointsize, d$gamma, d$colortype,  : 
  unable to start device X11cairo
In addition: Warning message:
In function (display = "", width, height, pointsize, gamma, bg,  :
  unable to open connection to X11 display ''

und wenn ich die Fähigkeiten überprüfen ich sehe , dass X11ist FALSE:

> capabilities()
No protocol specified
    jpeg      png     tiff    tcltk      X11     aqua http/ftp  sockets 
    TRUE     TRUE     TRUE     TRUE    FALSE    FALSE     TRUE     TRUE 
  libxml     fifo   cledit    iconv      NLS  profmem    cairo 
    TRUE     TRUE     TRUE     TRUE     TRUE    FALSE     TRUE 

Obwohl ich nichts darüber weiß, ob diese verbunden sind oder nicht, scheint es, dass X11 eingeschaltet sein sollte?

Überall, wo ich nach diesen Leuten gesucht habe, schien dieses Problem bei der Arbeit über eine SSH-Verbindung zu bestehen (ich habe mir noch nicht genau angesehen, was das ist: $).

Ich hoffe, jemand, der weiß, worum es bei diesem Problem geht, könnte so nett sein, mir das Problem zu erklären und eine Lösung vorzuschlagen.

Jóhann
quelle
1
Bevor Sie R starten, können Sie die Ausgabe vonecho $DISPLAY
Karlson
Dieser Befehl ergibt ´: 0´
Jóhann
1
Wie wäre es mit R:Sys.getenv("DISPLAY")
Karlson
hmm, das gibt mir nur bash: syntax error near unexpected token "DISPLAY"
Jóhann
Tun Sie dies: Sys.getenv(DISPLAY)oder dies: Sys.getenv('DISPLAY')oderSys.getenv(c("DISPLAY"))
Karlson

Antworten:

6

Es gibt viele andere Themen im Zusammenhang mit dem Kairoer Paket.

Einer von ihnen erwähnt die Änderung des X11-Typs, aber die meisten von ihnen geben an, dass R nicht weiß, was die Anzeige ist, und schlagen vor, Folgendes zu tun:

Sys.setenv("DISPLAY"=":0.0")

oder auf älteren Systemen

Sys.putenv("DISPLAY"=":0.0")
Karlson
quelle
5
Leider scheint weder diese noch die im anderen Thread erwähnte Lösung dies zu beheben. : / Mein Paket besteht auch darauf, dass ich Sys.setenv anstelle von putenv verwende. Sie wissen nicht, ob der neue Befehl anders ist?
Jóhann
3
Sys.putenvwird zugunsten vonSys.setenv
Karlson
1
Dies funktionierte das nächste Mal, als ich versuchte, dies zu verwenden :). Muss etwas Seltsames mit der letzten Sitzung gewesen sein
Jóhann
1

Wenn Sie keinen lokalen X - Server haben, können Sie den virtuellen Framebuffer - X11 - Server installieren wie hier gesagt :

apt-get install xvfb xauth xfonts-base

Dann können Sie eine neue Instanz starten, wie hier gesagt :

Xvfb :0 -ac -screen 0 1960x2000x24 &

Wenn Ihr R dann mit einer with-xKonfigurationsoption kompiliert wurde (standardmäßig aktiviert), sollten Sie über X11-Funktionen verfügen und dies nur in R deklarieren:

Sys.setenv("DISPLAY"=":0")
Anthony O.
quelle