错误:未在环境中设置XDG_RUNTIME_DIR。 Gtk-WARNING **:无法打开显示:

时间:2015-10-17 13:25:33

标签: ssh gtk ubuntu-14.04 sudo xdgutils

我曾经用sublime打开文本文件,而对于只读文件,我曾经这样做: sudo sublime。但现在突然sudo sublime命令出现以下错误:

(sublime:3931): Gtk-WARNING **: cannot open display:

while sublime命令工作正常。我和gedit尝试了同样的事情,同样的事情发生了,显示了gedit的错误:

error: XDG_RUNTIME_DIR not set in the environment.
(gedit:3933): Gtk-WARNING **: cannot open display: 

我安装了gtk,并尝试gksudo,仍然遇到了同样的错误!

我在网上搜索并找到了以下方法:

  1. xhost +localhosthttps://askubuntu.com/questions/614387/gksu-gtk-warning-cannot-open-display-0
  2. export DISPLAY=:0.0
  3. ssh username@hostname -X
  4. ssh username@hostname -Y
  5. https://superuser.com/questions/310197/how-do-i-fix-a-cannot-open-display-error-when-opening-an-x-program-after-sshi
  6. 以上都没有。

    对我有用的是:

    pkexec env DISPLAY=$DISPLAY XAUTHORITY=$XAUTHORITY sublime
    

    从这里开始:https://askubuntu.com/questions/456689/error-xdg-runtime-dir-not-set-in-the-environment-when-attempting-to-run-naut

    我想知道为什么我得到这个错误,太突然了!另外,我想回到sudo sublime版本,因为它很容易记住。我该如何解决这个问题?

    此外,我最近对系统所做的更改是:

    1. 为Ubuntu安装了Mac主题:http://www.noobslab.com/2014/04/macbuntu-1404-pack-is-released.html

    2. 已安装的gksu(适用于gksudo)

    3. 帮助将受到高度赞赏!

4 个答案:

答案 0 :(得分:3)

我有同样的问题。

我的情况是sudo不继承环境变量:DISPLAY XAUTHORITY

如何修复?

对于Ubuntu 14,请通过sudoers打开sudo visudo文件,然后粘贴:

Defaults        env_keep += "DISPLAY XAUTHORITY"

答案 1 :(得分:1)

有同样的问题。我的错误是我跟着另一个回答并用下一个字符串更改了文件sudoers

Defaults        env_keep="https_proxy"

但我应该补充一点:

Defaults        env_keep += "https_proxy"

第一个字符串会覆盖现有列表。

答案 2 :(得分:1)

我在Ubuntu 14.04上也有同样的问题。它是在追随另一个答案时引起的。 按,

打开终端

Ctrl + Alt + T

然后$ sudo visudo

更改

Defaults env_keep="https_proxy"

Defaults env_keep += "https_proxy"

它对我有用。

答案 3 :(得分:1)

如果您作为普通用户在 env 的输出中看到 XDG_RUNTIME_DIR ,那么您可能需要做的就是使用 -E 切换到保护环境。