Emacs über SSH unter OS X öffnen

2497
Kevin Meredith
[kevin@serverA myFolder]$ emacs sample emacs: Cannot connect to X server <IP Address> Check the DISPLAY environment variable or use `-d'. Also use the `xhost' program to verify that it is set to permit connections from your machine. 

Ich bin xhost+vor dem ssh'ing auf meinem Server gelaufen.

Warum kann ich Emacs nicht öffnen?

0

2 Antworten auf die Frage

3
Sean Goller

xhost ist in diesem Fall nicht wirklich relevant, wenn Sie ssh tunneling X verwenden. Sie haben nicht wirklich erwähnt, wie Ihr Setup ist. Ich gehe davon aus, dass Ihr Display-Client ein Mac ist und Ihr Server eine Linux-Box von eine Art, und du bist dabei.

  1. Leiten Sie X11 über Ihre SSH-Sitzung weiter? Sie können dies tun, indem Sie entweder -X in Ihre ssh-Befehlszeile einfügen oder "ForwardX11 yes" in ~ / .ssh / config eingeben. Sobald dies erledigt ist, überprüfen Sie Ihre DISPLAY-Variable auf dem Server (nach dem Einfügen in den Server), indem Sie "printenv DISPLAY" ausführen. Es sollte etwas wie "localhost: 10.0" oder ähnliches drucken, wobei der localhost-Teil wichtig ist.

  2. Ist X11 auf Ihrem Mac installiert? Wenn nicht, hol es dir. Für Mountain Lion müssen Sie XQuartz herunterladen und installieren. Bei älteren Versionen sollte es sich in einem Ordner befinden, der auf Ihrer Installations-DVD mit "Optionale Installationen" markiert ist.

  3. Wenn dies richtig eingestellt ist, haben Sie xauth auf Ihrem Server installiert? Führen Sie xauth auf Ihrem Server aus und prüfen Sie, ob Sie eine Antwort erhalten. Wenn nicht, müssen Sie das installieren.

Wenn alle diese Sterne übereinstimmen, sollten Sie in der Lage sein, X-Anwendungen erfolgreich auf Ihrem Mac anzuzeigen.

Ist sshd auf dem Server so konfiguriert, dass es X-Weiterleitung zulässt? Überprüfen Sie `X11Forwarding` in` / etc / sshd_config`. Der Standardwert ist "no". legoscia vor 12 Jahren 0
Wenn ich also ssh in Server b einsetze und die X11-Weiterleitung gemäß seiner / etc / sshd_config nicht zulasse, kann ich es einfach auf yes aktualisieren? Kevin Meredith vor 12 Jahren 0
Ja, vorausgesetzt, Sie haben Root-Rechte auf dem Server. Sean Goller vor 12 Jahren 0
0
Vlueboy

Können Sie überhaupt andere X-Programme öffnen? Was ist, wenn Sie xclock ausprobieren? Die Befehlszeile gibt standardmäßig die Ausgabe der X-Anzeige so aus, dass "Anzeigen" erwartet werden, die auf dem Computer erstellt werden, auf den Sie die Fernbedienung haben. Der Fehler führt dazu, dass Sie die Weiterleitungsinformationen angeben, damit das Anzeigefenster an Ihr lokales X11-System gesendet werden kann. Wenn X11 noch nicht in Ihrem lokalen System ausgeführt wird, fahren Sie am Ende dieses Beitrags zu einer Alternative.

Ich denke, die Weiterleitung erfolgt nicht automatisch für Sie mit dem X11Forwarding in / etc / sshd_config aus der Diskussion in Ihrer ersten Antwort. Folgen Sie der Anleitung hier, um die Befehlszeilenoption anzuzeigen (muss jedes Mal ausgeführt werden):

emacs sample -display your-actual-hostname-or-ip:0.0

Wenn dies alles nicht funktioniert, verwenden Sie die Nur-Text-Problemumgehung, während Sie sich in einem Remotebereich befinden: emacs -nw sample Wenn Sie dies verwenden, denken Sie daran, dass nichts, auch die Menüs können anklickbar sein. Möglicherweise müssen Sie [F8] ausführen und dann der textbasierten Menüführung folgen, um zu den Menüoptionen zu gelangen. Möglicherweise gibt es eine .emacs-Problemumgehung dafür.


Wenn Sie sich mit Emacs auskennen, können Sie dies in umgekehrter Reihenfolge angehen, wenn Sie eine lokale Version von Emacs heruntergeladen haben (ich empfehle xemacs). Es gibt offene Fragen zum Stack-Austausch , wie zum Beispiel zu solchen Slave-SSH-Shells . Hier ist einer mit ein paar weiteren Details zum Eshell- und Tramp-Modus . Optionen zu haben ist großartig für den richtigen Moment.