Google Chrome 无法启动 - 无法在 module_path 中找到主题引擎:“adwaita”

Google Chrome 无法启动 - 无法在 module_path 中找到主题引擎:“adwaita”

最近一次之后,Google Chrome 无法启动apt-get upgrade。我不知道我错过了什么,而且谷歌也没有找到很多关于这些错误的结果:

$ google-chrome
[1:1:0518/085616:ERROR:image_metadata_extractor.cc(111)] Couldn't load libexif.
[5807:5807:0518/085616:ERROR:browser_main_loop.cc(199)] GTK theme error: Unable to locate theme engine in module_path: "pixmap",
[5807:5807:0518/085616:ERROR:browser_main_loop.cc(199)] GTK theme error: Unable to locate theme engine in module_path: "adwaita",
[5807:5807:0518/085616:ERROR:browser_main_loop.cc(199)] GTK theme error: Unable to locate theme engine in module_path: "pixmap",
[5807:5807:0518/085616:ERROR:browser_main_loop.cc(199)] GTK theme error: Unable to locate theme engine in module_path: "pixmap",
[5807:5807:0518/085616:ERROR:browser_main_loop.cc(199)] GTK theme error: Unable to locate theme engine in module_path: "pixmap",
[5807:5807:0518/085616:ERROR:browser_main_loop.cc(199)] GTK theme error: Unable to locate theme engine in module_path: "adwaita",
[5807:5807:0518/085616:ERROR:browser_main_loop.cc(199)] GTK theme error: Unable to locate theme engine in module_path: "pixmap",
[5807:5807:0518/085616:ERROR:browser_main_loop.cc(199)] GTK theme error: Unable to locate theme engine in module_path: "pixmap",
[5807:5807:0518/085616:ERROR:browser_main_loop.cc(199)] GTK theme error: Unable to locate theme engine in module_path: "pixmap",
[5807:5807:0518/085616:ERROR:browser_main_loop.cc(199)] GTK theme error: Unable to locate theme engine in module_path: "pixmap",
[5807:5807:0518/085616:ERROR:browser_main_loop.cc(199)] GTK theme error: Unable to locate theme engine in module_path: "pixmap",
[5807:5807:0518/085616:ERROR:browser_main_loop.cc(199)] GTK theme error: Unable to locate theme engine in module_path: "pixmap",
[5807:5807:0518/085616:ERROR:browser_main_loop.cc(199)] GTK theme error: Unable to locate theme engine in module_path: "pixmap",
[5807:5807:0518/085616:ERROR:browser_main_loop.cc(199)] GTK theme error: Unable to locate theme engine in module_path: "pixmap",
[5807:5807:0518/085616:ERROR:browser_main_loop.cc(199)] GTK theme error: Unable to locate theme engine in module_path: "pixmap",
[5807:5807:0518/085616:ERROR:browser_main_loop.cc(199)] GTK theme error: Unable to locate theme engine in module_path: "pixmap",
[5807:5807:0518/085616:ERROR:browser_main_loop.cc(199)] GTK theme error: Unable to locate theme engine in module_path: "pixmap",
[5807:5807:0518/085616:ERROR:browser_main_loop.cc(199)] GTK theme error: Unable to locate theme engine in module_path: "pixmap",
[5807:5807:0518/085616:ERROR:browser_main_loop.cc(199)] GTK theme error: Unable to locate theme engine in module_path: "pixmap",
[5807:5807:0518/085616:ERROR:browser_main_loop.cc(199)] GTK theme error: Unable to locate theme engine in module_path: "pixmap",
[5807:5807:0518/085616:ERROR:browser_main_loop.cc(199)] GTK theme error: Unable to locate theme engine in module_path: "pixmap",
[5807:5807:0518/085616:ERROR:browser_main_loop.cc(199)] GTK theme error: Unable to locate theme engine in module_path: "pixmap",
[5807:5807:0518/085616:ERROR:browser_main_loop.cc(199)] GTK theme error: Unable to locate theme engine in module_path: "pixmap",
[5807:5807:0518/085616:ERROR:browser_main_loop.cc(199)] GTK theme error: Unable to locate theme engine in module_path: "pixmap",
[5807:5807:0518/085616:ERROR:browser_main_loop.cc(199)] GTK theme error: Unable to locate theme engine in module_path: "pixmap",
[5807:5807:0518/085616:ERROR:browser_main_loop.cc(199)] GTK theme error: Unable to locate theme engine in module_path: "pixmap",
[5807:5807:0518/085616:ERROR:browser_main_loop.cc(199)] GTK theme error: Unable to locate theme engine in module_path: "pixmap",
[5807:5807:0518/085616:ERROR:browser_main_loop.cc(199)] GTK theme error: Unable to locate theme engine in module_path: "pixmap",
[5807:5807:0518/085616:ERROR:browser_main_loop.cc(199)] GTK theme error: Unable to locate theme engine in module_path: "pixmap",
[5807:5807:0518/085616:ERROR:browser_main_loop.cc(199)] GTK theme error: Unable to locate theme engine in module_path: "pixmap",
Aborted (core dumped)


$ google-chrome --version
Google Chrome 42.0.2311.152

升级之前,Chrome 在这台机器上运行良好。

答案1

我的回答的第一部分:

为了GTK theme error: Unable to locate theme engine in module_path: "pixmap"

sudo apt-get install  gtk2-engines-pixbuf:i386

答案2

该问题似乎只发生在 64 位 Ubuntu 系统上的 i386 版 Google Chrome 上。提示这是 32 位与 64 位问题,是因为安装:i386某些软件包的版本后,一些错误消失了。我通过安装 64 位版本让 Chrome 重新运行:

$ sudo aptitude install google-chrome-stable

The following packages have unmet dependencies:
 libappindicator1 : Conflicts: libappindicator1:i386 but 12.10.1+15.04.20141110-0ubuntu1 is installed.
 libappindicator1:i386 : Conflicts: libappindicator1 but 12.10.1+15.04.20141110-0ubuntu1 is to be installed.
 google-chrome-stable : Conflicts: google-chrome-stable:i386 but 42.0.2311.152-1 is installed.
 google-chrome-stable:i386 : Conflicts: google-chrome-stable but 42.0.2311.152-1 is to be installed.
 libindicator7 : Conflicts: libindicator7:i386 but 12.10.2+14.10.20140922-0ubuntu1 is installed.
 libindicator7:i386 : Conflicts: libindicator7 but 12.10.2+14.10.20140922-0ubuntu1 is to be installed.
The following actions will resolve these dependencies:

     Remove the following packages:
1)     google-chrome-stable:i386   
2)     libappindicator1:i386       
3)     libindicator7:i386          

Accept this solution? [Y/n/q/?] 

我接受了提出的解决方案,将几个软件包升级到 64 位版本,Chrome 又可以正常工作了。

答案3

无法总是更新应用程序,这对我有用

$ sudo apt install gnome-themes-standard:i386

答案4

我使用带有前缀的 gtk 安装/usr/src/ClawsMail/install。在 (strace) 打印后会打印上述警告:

access("/home/carlo/.gtk-2.0/2.10.0/x86_64-pc-linux-gnu/engines/libadwaita.so", F_OK) = -1 ENOENT (No such file or directory)
access("/home/carlo/.gtk-2.0/2.10.0/x86_64-pc-linux-gnu/engines/libadwaita.la", F_OK) = -1 ENOENT (No such file or directory)
access("/home/carlo/.gtk-2.0/2.10.0/engines/libadwaita.so", F_OK) = -1 ENOENT (No such file or directory)
access("/home/carlo/.gtk-2.0/2.10.0/engines/libadwaita.la", F_OK) = -1 ENOENT (No such file or directory)
access("/home/carlo/.gtk-2.0/x86_64-pc-linux-gnu/engines/libadwaita.so", F_OK) = -1 ENOENT (No such file or directory)
access("/home/carlo/.gtk-2.0/x86_64-pc-linux-gnu/engines/libadwaita.la", F_OK) = -1 ENOENT (No such file or directory)
access("/home/carlo/.gtk-2.0/engines/libadwaita.so", F_OK) = -1 ENOENT (No such file or directory)
access("/home/carlo/.gtk-2.0/engines/libadwaita.la", F_OK) = -1 ENOENT (No such file or directory)
access("/usr/src/ClawsMail/install/lib/gtk-2.0/2.10.0/x86_64-pc-linux-gnu/engines/libadwaita.so", F_OK) = -1 ENOENT (No such file or directory)
access("/usr/src/ClawsMail/install/lib/gtk-2.0/2.10.0/x86_64-pc-linux-gnu/engines/libadwaita.la", F_OK) = -1 ENOENT (No such file or directory)
access("/usr/src/ClawsMail/install/lib/gtk-2.0/2.10.0/engines/libadwaita.so", F_OK) = -1 ENOENT (No such file or directory)
access("/usr/src/ClawsMail/install/lib/gtk-2.0/2.10.0/engines/libadwaita.la", F_OK) = -1 ENOENT (No such file or directory)
access("/usr/src/ClawsMail/install/lib/gtk-2.0/x86_64-pc-linux-gnu/engines/libadwaita.so", F_OK) = -1 ENOENT (No such file or directory)
access("/usr/src/ClawsMail/install/lib/gtk-2.0/x86_64-pc-linux-gnu/engines/libadwaita.la", F_OK) = -1 ENOENT (No such file or directory)
access("/usr/src/ClawsMail/install/lib/gtk-2.0/engines/libadwaita.so", F_OK) = -1 ENOENT (No such file or directory)
access("/usr/src/ClawsMail/install/lib/gtk-2.0/engines/libadwaita.la", F_OK) = -1 ENOENT (No such file or directory)
access("/usr/lib/gtk-2.0/2.10.0/x86_64-pc-linux-gnu/engines/libadwaita.so", F_OK) = -1 ENOENT (No such file or directory)
access("/usr/lib/gtk-2.0/2.10.0/x86_64-pc-linux-gnu/engines/libadwaita.la", F_OK) = -1 ENOENT (No such file or directory)
access("/usr/lib/gtk-2.0/2.10.0/engines/libadwaita.so", F_OK) = -1 ENOENT (No such file or directory)
access("/usr/lib/gtk-2.0/2.10.0/engines/libadwaita.la", F_OK) = -1 ENOENT (No such file or directory)
access("/usr/lib/gtk-2.0/x86_64-pc-linux-gnu/engines/libadwaita.so", F_OK) = -1 ENOENT (No such file or directory)
access("/usr/lib/gtk-2.0/x86_64-pc-linux-gnu/engines/libadwaita.la", F_OK) = -1 ENOENT (No such file or directory)
access("/usr/lib/gtk-2.0/engines/libadwaita.so", F_OK) = -1 ENOENT (No such file or directory)
access("/usr/lib/gtk-2.0/engines/libadwaita.la", F_OK) = -1 ENOENT (No such file or directory)

假设在我的主目录中找不到任何内容是正常的,并且由于我的安装在/usr/src/ClawsMail/install不正常,我假设通常libadwaita.so会找到<prefix>/lib/gtk-2.0/...,但我没有在相同的前缀下安装 libadwaita。

然而-查看后/usr/src/ClawsMail/install它会继续查看,/usr/lib/gtk-2.0/...因此如果在正常安装下则不会产生差异/usr

我确实已经libadwaita.so在我的系统上安装了,并且在这里:

/usr/lib/x86_64-linux-gnu/gtk-2.0/2.10.0/engines/libadwaita.so

请注意,这/usr/lib/gtk-2.0甚至不存在。

事实证明,此搜索发生在调用

_gtk_find_module (name=0x5555557ee0e0 "adwaita", type=0x7ffff7b0c776 "engines") at gtkmodules.c:196

并且搜索的路径是

paths = _gtk_get_module_path (type);

获取三个前缀

gchar **paths = get_module_path();

事实证明,最后一个前缀(/usr/lib/gtk-2.0)被称为pre_multiarch_dir,又名 multiarch 之前的前缀;它确实不再使用。

因此,我的问题是我没有在与安装 gtk-2.0 相同的前缀中安装引擎。但是,可以使用环境变量扩展搜索:

如果GTK_EXE_PREFIX设置则将$GTK_EXE_PREFIX/lib/gtk-2.0使用反而gtk-2.0 本身的安装前缀和 pre_multiarch_dir (因此在现代多架构分布上无用)。

如果GTK_PATH设置了,那么它将被用在所有其他内容之上。我相信后者甚至可以是一个以分号分隔的路径列表。

使用

export GTK_PATH="/usr/lib/x86_64-linux-gnu/gtk-2.0"

因此,对我来说警告就消失了。

相关内容