6

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

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

虽然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

以上都没有奏效。

对我有用的是:

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)

帮助将不胜感激!

4

4 回答 4

3

我也有同样的问题。

在我的情况下的原因是它sudo不继承环境变量:DISPLAY XAUTHORITY.

怎么修?

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

Defaults        env_keep += "DISPLAY XAUTHORITY"
于 2016-02-28T06:32:10.217 回答
1

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

于 2018-01-28T23:59:37.483 回答
1

我在 Ubuntu 14.04 上也遇到了同样的问题。这是在遵循另一个答案时引起的。按打开终端,

Ctrl+ Alt+T

然后$ sudo visudo

改变

Defaults env_keep="https_proxy"

Defaults env_keep += "https_proxy"

它对我有用。

于 2016-08-01T12:04:30.197 回答
1

有同样的问题。我的错是我遵循了另一个答案并sudoers用下一个字符串更改了文件:

Defaults        env_keep="https_proxy"

但我应该补充一点:

Defaults        env_keep += "https_proxy"

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

于 2016-07-21T17:09:29.227 回答