Emacs führt GUI nur dann aus, wenn es nicht sudo ist

482
skyfire

Ich habe Emacs aus dem Ubuntu Software Center installiert und alles scheint gut zu funktionieren, abgesehen sudo emacsdavon, dass die GUI-Version ausgeführt wird, ein Fehler ausgegeben wird No protocol specified Display :0 unavailable, simulating -nwund dann im Terminal ausgeführt wird.

using emacs(w / out sudo) Ich sehe keinen solchen Fehler, die GUI-Version läuft einwandfrei, aber die Erweiterungen, die ich verwenden möchte, werden dann durch Berechtigungen blockiert.

Ich verwende Ubuntu 17.10 mit allen Updates neu.

Ich habe versucht es zu benutzen, emacs -d localhost:0.0aber das gibt FehlerDisplay localhost:0.0 can't be opened

0

1 Antwort auf die Frage

1
sds

Dein Fehler

Dies ist nicht spezifisch für Emacs. Das Problem ist, dass Ihr Nicht-Root-Benutzer X ausführt, wodurch Ihrem Root-Benutzer keine Berechtigungen erteilt werden. Versuchen sudo xtermSie es und Sie erhalten den gleichen Fehler.

Diese Frage wurde zweimal unter Unix beantwortet:

Emacs kann es besser machen!

Beachten Sie jedoch, dass ein Emacs-Benutzer Emacs nicht unter sudo, sondern sudo unter Emacs / Tramp ausführt .

Siehe die detaillierte SO-Antwort .

Ich konnte mein Problem mit `xhost si: localuser: root` beheben, nachdem ich den Kommentar von Karl Richter [hier] (https://unix.stackexchange.com/questions/118811/why-cant-i-run) gelesen hatte -gui-apps-from-root-no-protocol-spezifiziert). Ich sehe das nicht auf der von Ihnen verlinkten Seite, daher kann ich nicht definitiv sagen, dass das, was Sie vorgeschlagen haben, dasselbe erreichen würde - aber vielleicht könnten Sie Ihre Antwort erweitern und sagen, warum diese nicht gleichwertig sind / sind? skyfire vor 6 Jahren 0
Ich finde diese Lösung leider nach dem Neustart verschwunden. Ich habe die .Xauthority-Vorschläge ausprobiert, aber keine davon funktioniert, indem ich `sudo xauth generate: 0 ausprobiert habe. Das Erstellen einer korrekten .Xauthority funktioniert nicht - ein sehr ähnlicher Fehler tritt auf. In der Zwischenzeit füge ich also nur `xhost si: localuser: root> / dev / null 'zu meinem` .bashrc` hinzu skyfire vor 6 Jahren 0
@skyfire: Ich bitte Sie dringend, Emacs / Tramp zu verwenden. sds vor 6 Jahren 0