web-dev-qa-db-fra.com

"gedit" ne se lance pas en tant que root: "CRITICAL: fichier log.c ..." - erreur (pas de problème gksu!)

J'utilise Ubuntu 14.10 avec XFCE. Depuis quelques semaines, gedit ne se lance plus en tant que root (avec gksu gedit).

Lancer avec mon compte normal fonctionne sans problèmes. Le problème n'est pas gksu, car il a le même effet que Sudo (je sais, cela n'est pas recommandé pour l'interface graphique) ou gksudo. pkexec donne une erreur différente. Cependant, d’autres programmes (par exemple, eog) fonctionnent correctement avec gksu!

Lorsque je lance gksu gedit, je reçois l'invite de mot de passe gksu et, une fois entré, je vois le curseur de la souris pour environ une demi-minute, mais aucune fenêtre gedit ne s'ouvre. Aucune sortie de terminal non plus.

Lancer pkexec gedit dans un terminal donne:

bytecommander@AlkaliMetal:~$ pkexec gedit
gdk_mir_display_open
Failed to connect to Mir: Failed to connect to server socket: File or Path not found.

(gedit:3935): Gtk-WARNING **: cannot open display: 
bytecommander@AlkaliMetal:~$ 

Lancer gedit dans un terminal root donne:

root@AlkaliMetal:/home/bytecommander# gedit

(gedit:24281): dconf-WARNING **: failed to commit changes to dconf: Failed to execute child process "dbus-launch" (No such file or directory)

** (gedit:24281): CRITICAL **: file log.c: line 975: unexpected error: Failed to execute child process "dbus-launch" (No such file or directory) (g-exec-error-quark, 8)

^C
root@AlkaliMetal:/home/bytecommander#

(La commande ne se termine pas. Je l'ai abandonnée après un moment avec Ctrl+C)

J'ai cherché le fichier log.c à partir du message d'erreur. Le seul que j'ai trouvé était /usr/share/gettext/intl/log.c. Étrange, cependant, ce fichier ne contient que 126 lignes. La ligne mentionnée ci-dessus (ligne 975) n’existe donc pas! Dois-je poster le contenu? Cela ressemble à du code C normal.

J'ai aussi déjà supprimé /root/.config/gedit/, mais rien n'a changé.

Démarrer dconf-editor à partir d'un terminal root et examiner les clés de dconf:/org/gnome/gedit ne montre aucune valeur suspecte (pour moi!). Je peux poster des clés si vous me dites comment les vider. Je sais seulement comment utiliser l'outil graphique.

Que dois-je faire pour restaurer mes paramètres root-dconf pour gedit (en supposant que ce soit le problème)? Ou est-ce que je me trompe et le problème a une autre cause?
Peut-être pouvez-vous même deviner ce qui ne va pas, afin que je puisse l'éviter à l'avenir. Merci!

4
Byte Commander

J'ai réussi à résoudre mon problème et à remettre Gedit au travail, même pour root.

Ce que j'ai fait était

  1. Sudo apt-get install --reinstall dbus dbus-x11

    pour réinstaller des paquets dbus que j’ai probablement probablement égarés il ya quelque temps en exécutant make uninstall sur un paquet contenant des pièces dbus.

  2. dconf dump /org/gnome/gedit/ > /home/bytecommander/dconf-gedit.dump suivi de l'ouverture d'un shell racine avec Sudo -i et en tant que root:
    dconf load /org/gnome/gedit/ < /home/bytecommander/dconf-gedit.dump

    copier les paramètres dconf de travail pour gedit de mon profil d’utilisateur normal vers la base de données dconf de la racine.

Après cela fonctionne comme un charme. Même les avertissements dconf concernant le lancement de dbus ont disparu.

4
Byte Commander