“gedit” 无法以 root 身份启动:“CRITICAL:文件 log.c...”-错误(没有 gksu 问题!)

“gedit” 无法以 root 身份启动:“CRITICAL:文件 log.c...”-错误(没有 gksu 问题!)

我正在运行带有 XFCE 的 Ubuntu 14.10。几个星期以来,gedit不再以 root 身份启动(使用gksu gedit)。

使用我的普通帐户启动没有问题。问题不在于,因为它的作用与(我知道,不推荐用于 GUI)或gksu相同。给出了不同的错误。但是,其他程序(例如)可以很好地运行!sudogksudopkexeceoggksu

当我运行 时gksu gedit,我收到gksu密码提示,输入密码后,我看到鼠标光标盘旋了大约半分钟,但没有gedit打开任何窗口。也没有终端输出。

pkexec gedit在终端运行得到:

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:~$ 

gedit在根终端中运行可得到:

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#

(该命令不会终止。一段时间后我用Ctrl+中止了它C

我从错误信息中搜索了该log.c文件。我找到的唯一文件是/usr/share/gettext/intl/log.c。但奇怪的是,这个文件只有 126 行,所以上面提到的行(第 975 行)不存在!我要发布内容吗?它看起来像普通的 C 代码。

我也已删除/root/.config/gedit/,但没有任何改变。

从根终端启动dconf-editor并检查密钥,dconf:/org/gnome/gedit没有显示任何可疑(对我来说!)值。如果您告诉我如何转储它们,我可以发布一些密钥。我只知道如何使用 GUI 工具。

我该怎么做才能恢复 gedit 的 root-dconf 设置(假设这是问题所在)?还是我错了,问题有其他原因?
也许你甚至可以猜出是什么搞砸了,这样我以后就可以避免这种情况了。谢谢!

答案1

我设法解决了我的问题并让 gedit 重新工作,甚至对于 root 来说也是如此。

我所做的是

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

    重新安装一些 dbus 包,这些包我可能在一段时间前因为运行make uninstall包含 dbus 部分的包而弄乱了。

  2. dconf dump /org/gnome/gedit/ > /home/bytecommander/dconf-gedit.dump 然后使用 root 身份打开 root shell sudo -i
    dconf load /org/gnome/gedit/ < /home/bytecommander/dconf-gedit.dump

    将 gedit 的工作 dconf 设置从我的普通用户配置文件复制到 root 的 dconf 数据库。

之后一切运行正常。甚至有关 dbus-launch 的 dconf 警告也消失了。

相关内容