“perl / Tk inutilizável, não pode criar janelas principais.” ao executar usando “sudo”

0

Mensagem de erro completa para sudo /usr/local/bin/tlmgr -gui (gerente do TeX Live 2017) Estou usando meu OpenSUSE Tumbleweed com o Gnome 3:

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.

Nenhuma mensagem de erro ao iniciá-lo sem sudo (não é possível usá-lo dessa forma desde que o instalei em todo o sistema).

O mesmo resultado se

  • fazendo sudo -H
  • fazendo dentro de sudo -i (deve ser o mesmo que sudo -H AFAIK)
  • usando pkexec em vez de sudo (aparentemente o novo substituto para gksu / gksudo ?)

Então, tentei ser esperto e brincar com o arquivo de autoridade X (tirei a ideia de postagens como link ) :

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

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

Depois disso, recebo a mensagem de erro com as duas primeiras linhas seguintes (e o restante é o mesmo de antes):

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!

Saída para xauth list :

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

Para sudo xauth list :

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

Para ssh -X localhost xauth list :

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

Para ssh -X root@localhost xauth list :

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

Depois de sudo ln -sf ~/.Xauthority /root

Saída para xauth list :

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

Saída para sudo xauth list :

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

A mensagem de erro é novamente a primeira.

xauth list output dentro de su - ou usando sudo -E (ambos onde funciona):

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

(Igual ao primeiro).

Funciona com ssh -X localhost tlmgr -gui . Também funciona dentro de su - e usando sudo -E .

Qual é o problema subjacente e como isso pode ser resolvido?

    
por phk 06.06.2017 / 14:46

1 resposta

0

Como discutido nos comentários, o problema tem a ver com DISPLAY não sendo preservado com sudo , portanto, usar sudo -E é uma solução possível.

    
por 14.09.2017 / 18:03