我的 Debian 盒子 (Buster) 遇到这个问题。每当我运行命令时
sudo ./FreeFileSync
我收到以下错误:
Invalid MIT-MAGIC-COOKIE-1 key10:24:17: Error: Unable to initialize GTK+, is DISPLAY set properly?
所以我检查了DISPLAY环境变量如下:
rekotc@QSTACKER:~/FreeFileSync$ env | grep DISPLAY
WAYLAND_DISPLAY=wayland-0
DISPLAY=:0
看起来设置正确。我缺少什么?
提前致谢。
答案1
如果您使用该用户登录到计算机,john
则只有该用户有权在屏幕上画画、读取键盘和鼠标移动等。即使用户也root
可能不会这样做(无需做一些工作)。
任何还需要登录的用户都需要能够提供密钥。在 X11 下,可以在某个位置找到它,例如/run
.这是一个例子:
john@pc: ps aux | grep bin/X | grep -v grep
root 1125 5.0 0.5 1982242 145420 tty7 Rsl+ Mar26 96:33 /usr/bin/X -nolisten tcp -auth /run/folder/{12345678-1234-1234-1234-123456789a} -background none -noreset -displayfd 17 -seat seat0 vt7
在这里您可以看到 X 服务器是使用-auth
参数作为文件启动的,在本例中/run/folder/{12345678-1234-1234-1234-123456789a}
(是的,那就是一个文件)。
对于 Wayland 来说,它可能看起来像这样:
john@pc: ps aux | grep /Xorg | grep -v grep
john 2490 2.8 0.7 628618 86908 tty2 Sl+ 21:26 0:03 /usr/lib/xorg-server/Xorg vt2 -displayfd 3 -auth /run/user/1000/gdm/Xauthority -nolisten tcp -background none -noreset -keeptty -verbose 3
在这里你可以看到文件名为/run/user/1000/gdm/Xauthority
.
因此,如果root
想要启动带有图形界面的程序,他们需要拥有该文件,并且将在他们的~/.Xauthority
文件中搜索该文件。
因此,通过复制文件进行准备:
john@pc: sudo cat /run/user/1000/gdm/Xauthority > /root/.Xauthority
然后执行命令:
john@pc: sudo ./FreeFileSync
这对我行得通。