我曾经用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
,仍然遇到了同样的错误!
我在网上搜索并找到了以下方法:
xhost +localhost
:https://askubuntu.com/questions/614387/gksu-gtk-warning-cannot-open-display-0 export DISPLAY=:0.0
:ssh username@hostname -X
ssh username@hostname -Y
以上都没有。
对我有用的是:
pkexec env DISPLAY=$DISPLAY XAUTHORITY=$XAUTHORITY sublime
我想知道为什么我得到这个错误,太突然了!另外,我想回到sudo sublime
版本,因为它很容易记住。我该如何解决这个问题?
此外,我最近对系统所做的更改是:
为Ubuntu安装了Mac主题:http://www.noobslab.com/2014/04/macbuntu-1404-pack-is-released.html
已安装的gksu(适用于gksudo)
帮助将受到高度赞赏!
答案 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 切换到保护环境。