“perl/Tk 无法使用,无法创建主窗口。”使用“sudo”运行时

“perl/Tk 无法使用,无法创建主窗口。”使用“sudo”运行时

sudo /usr/local/bin/tlmgr -gui我在使用 Gnome 3 的 OpenSUSE Tumbleweed 上收到(TeX Live 2017 管理器)的完整错误消息:

No protocol specified
perl/Tk unusable, cannot create main windows.
That could be a consequence of not having X Windows installed or started!
Error message from creating MainWindow:
  couldn't connect to display ":0" at /usr/lib/perl5/vendor_perl/5.24.1/x86_64-linux-thread-multi/Tk/MainWindow.pm line 53.
Tk::MainWindow->new() at /usr/local/bin/tlmgr line 4704.

启动它时没有这样的错误消息sudo(尽管我在系统范围内安装了它,但不能以这种方式使用它)。

同样的结果如果

  • 正在做sudo -H
  • 在里面做sudo -i(应该和AFAIK一样sudo -H
  • 使用pkexec而不是sudo(显然gksu/的新替代品gksudo?)

然后我尝试聪明地玩弄 X 权限文件(从诸如https://unix.stackexchange.com/a/8250):

ln -s /run/user/1000/gdm/Xauthority /root/.Xauthority

# inside sudo -i then
export XAUTHORITY=/root/.Xauthority

之后,我收到以下前两行的错误消息(其余部分与以前相同):

Invalid MIT-MAGIC-COOKIE-1 keyperl/Tk unusable, cannot create main windows.
That could be a consequence of not having X Windows installed or started!

输出xauth list

linux-q1xc/unix:  MIT-MAGIC-COOKIE-1  fa445a3c038b19300e8e45d4ae0ae55a
#ffff#6c696e75782d71317863#:  MIT-MAGIC-COOKIE-1  fa445a3c038b19300e8e45d4ae0ae55a

为了sudo xauth list

linux-q1xc/unix:10  MIT-MAGIC-COOKIE-1  7e608058d97a6bf4ae346879f4f5fd46

为了ssh -X localhost xauth list

linux-q1xc/unix:10  MIT-MAGIC-COOKIE-1  faaf2ba1724d5efe85aa5ef6cb4fcc52

为了ssh -X root@localhost xauth list

linux-q1xc/unix:10  MIT-MAGIC-COOKIE-1  e8168ff05f56458663f187ec38f744fe

sudo ln -sf ~/.Xauthority /root

输出xauth list

linux-q1xc/unix:  MIT-MAGIC-COOKIE-1  fa445a3c038b19300e8e45d4ae0ae55a
#ffff#6c696e75782d71317863#:  MIT-MAGIC-COOKIE-1  fa445a3c038b19300e8e45d4ae0ae55a

输出sudo xauth list

linux-q1xc/unix:10  MIT-MAGIC-COOKIE-1  faaf2ba1724d5efe85aa5ef6cb4fcc52

错误消息又是第一条。

xauth list内部su -或使用输出sudo -E(两者都有效):

linux-q1xc/unix:  MIT-MAGIC-COOKIE-1  fa445a3c038b19300e8e45d4ae0ae55a                                                                                                                        
#ffff#6c696e75782d71317863#:  MIT-MAGIC-COOKIE-1  fa445a3c038b19300e8e45d4ae0ae55a

(与第一个相同。)


与 一起工作ssh -X localhost tlmgr -gui。也可以在内部使用su -并使用sudo -E.

根本问题是什么以及如何解决?

答案1

DISPLAY正如评论中所讨论的,问题与不保留有关sudo,因此使用sudo -E是一种可能的解决方案。

相关内容