sabato 6 ottobre 2012

[Risolto] cannot connect to X server :0

A differenza di GNOME, in KDE non è possibile avviare applicazioni grafiche direttamente con sudo. Infatti, se in KDE si prova a eseguire con sudo un'applicazione grafica da utilizzare con i permessi di amministratore, si potrà ricevere un messaggio di errore di questo tipo
$ sudo kate
QDBusConnection: session D-Bus connection created before QCoreApplication. Application may misbehave.
No protocol specified
kate: cannot connect to X server :0
La soluzione è semplice: basta utilizzare kdesudo (assicurarsi di aver installato il pacchetto omonimo) al posto del solo sudo:
$ kdesudo kate


Aggiornamento (20/06/2013): come detto, bisogna utilizzare kdesudo per eseguire con i permessi di amministratore qualsiasi applicazione grafica, compreso il programma di installazione della distribuzione TeX Live scaricata dal sito http://www.tug.org/texlive/. Provando a eseguire lo script di installazione con sudo al posto di kdesudo si otterrebbe il seguente messaggio d'errore
$ sudo ./install-tl -gui
No protocol specified
perl/Tk unusable, cannot create main window.
Error message from creating MainWindow:
  couldn't connect to display ":0" at /usr/lib/perl5/Tk/MainWindow.pm line 53.
Tk::MainWindow->new() at ./install-tl line 339

Continuing in text mode...
Quindi il comando corretto da utilizzare è invece
$ kdesudo -- ./install-tl -gui
Il doppio trattino dopo kdesudo serve per specificare che è finito l'elenco delle opzioni di kdesudo, il resto dell'argomento deve essere trattato come comando da eseguire, altrimenti -gui verrebbe interpretata come opzione di kdesudo invece che dello script install-tl.

Nessun commento:

Posta un commento

I commenti inseriti vengono lasciati dall'autore degli stessi accettandone ogni eventuale responsabilità civile e penale.
Il curatore del blog si riserva la possibilità di eliminare messaggi contenenti frasi offensive o spam.