Xt error: Can ' T open display, wenn mit dem default-DISPLAY

Übersicht

Ich bin versucht zu bekommen XQuartz arbeiten auf OSX, so dass ich tun kann, X11-forwarding über das Andockfenster. Ich bin folgenden die Anleitung hier. Ich glaube, meine Frage kann beantwortet werden, indem nur der erste Teil, aber nur für den Fall (um zu vermeiden das XY-problem), habe ich den zweiten Teil als gut.

Installation

Habe ich das installiert via homebrew, über brew cask install xquartz. Dann habe ich open -a XQuartz zu starten.

Lokalen xterms

Testen Sie es aus, wenn ich versuche, öffnen Sie ein xterm funktioniert es nicht:

MacBook-Pro:opencv-gui csaftoiu$ xterm
xterm: Xt error: Can't open display: /private/tmp/com.apple.launchd.3wncZULdXC/org.macosforge.xquartz:0

Die pseudo-Datei vorhanden ist, obwohl:

MacBook-Pro:opencv-gui csaftoiu$ echo $DISPLAY
/private/tmp/com.apple.launchd.3wncZULdXC/org.macosforge.xquartz:0
MacBook-Pro:opencv-gui csaftoiu$ ls -alh $DISPLAY
srw-rw-rw-  1 csaftoiu  wheel     0B May  6 21:12 /private/tmp/com.apple.launchd.3wncZULdXC/org.macosforge.xquartz:0

Ich kann öffnen Sie ein xterm über XQuartz. Dann:

bash-3.2$ echo $DISPLAY
:0

Dieser Wert funktioniert aus einem normalen OSX zu:

$ DISPLAY=:0 xterm
# opens xterm, waits for it to finish
$

Folgende nicht funktionieren, nicht sicher, warum, basierend auf hier die Antwort:

xterm: Xt error: Can't open display: localhost:0
MacBook-Pro:opencv-gui csaftoiu$ DISPLAY=127.0.0.1:0 xterm
xterm: Xt error: Can't open display: 127.0.0.1:0
MacBook-Pro:opencv-gui csaftoiu$ DISPLAY=`ipconfig getifaddr en0`:0 xterm
xterm: Xt error: Can't open display: 192.168.1.15:0

Beachten Sie, dass xinit funktioniert, für einige reason:

$ xinit

xinit: XFree86_VT property unexpectedly has 0 items instead of 1
# opens xterm, waits for it to finish
xinit: connection to X server lost

waiting for X server to shut down

Frage 1: Was ist XQuartz tatsächlich hören Sie auf?


Docker-Weiterleitung mit schockiert

In jedem Fall bewegen Sie sich auf, diese socat Befehl funktioniert nicht:

MacBook-Pro:opencv-gui csaftoiu$ socat TCP-LISTEN:6000,reuseaddr,fork UNIX-CLIENT:\"$DISPLAY\"

Laufen, von einem anderen Fenster Mach ich:

MacBook-Pro:opencv-gui csaftoiu$ docker run --rm -it -e DISPLAY=`ipconfig getifaddr en0`:0 ubuntu:14.04 bash
root@912eec31b8cb:/# apt-get update && apt-get install xterm
... such install, wow ...
root@912eec31b8cb:/# xterm
Warning: This program is an suid-root program or is being run by the root user.
The full text of the error or warning message cannot be safely formatted
in this environment. You may get a more descriptive message by running the
program as a non-root user or by removing the suid bit on the executable.
xterm: Xt error: Can't open display: %s
root@912eec31b8cb:/# echo $DISPLAY
192.168.1.15:0

Aus der socat Fenster bekomme ich:

2016/06/14 21:08:15 socat[24289] E connect(5, LEN=68 AF=1 "/private/tmp/com.apple.launchd.3wncZULdXC/org.macosforge.xquartz:0", 68): Connection refused

Ich kann nicht mit der DISPLAY-variable, die funktioniert, entweder:

MacBook-Pro:opencv-gui csaftoiu$ socat TCP-LISTEN:6000,reuseaddr,fork UNIX-CLIENT:\":0\"
2016/06/14 21:09:43 socat[24309] E connect(5, LEN=4 AF=1 ":0", 4): No such file or directory

Nun, dies ist nicht ein UNIX-CLIENT IP-Adresse. Aber, ich weiß nicht was DISPLAY=:0 verbunden ist. Es ist sicherlich nicht von port 6000, da dieser port es benutzt zu werden, hören auf. Wenn ich es ändern zu 6005 zur Weiterleitung an 6000, und stellen Sie die Docker-container ANGEZEIGT werden $(ipconfig getifaddr en0):5 statt, dann ist die Verbindung natürlich abgelehnt:

$ socat TCP-LISTEN:6005,reuseaddr,fork TCP:localhost:6000
2016/06/14 21:20:32 socat[25379] E connect(8, LEN=16 AF=2 127.0.0.1:6000, 16): Connection refused

Frage 2: Wie Vorgehen?

InformationsquelleAutor Claudiu | 2016-06-15
Schreibe einen Kommentar