Friday, December 20, 2013

Solving failed to load canberra-gtk-module error on precise.

I have Ubuntu Precise(12.04) 64 bit.

On openinig sublime, it gave me this error -
(sublime:7247): Gtk-WARNING **: Unable to locate theme engine in module_path: "murrine",
(sublime:7247): Gtk-WARNING **: Unable to locate theme engine in module_path: "murrine",
(sublime:7247): Gtk-WARNING **: Unable to locate theme engine in module_path: "murrine",
Gtk-Message: Failed to load module "canberra-gtk-module"
'import site' failed; use -v for traceback
`menu_proxy_module_load': sublime: undefined symbol: menu_proxy_module_load
(sublime:7247): Gtk-WARNING **: Failed to load type module: (null)


on running strace on sublime ,

I got this output  -

access("/usr/lib/i386-linux-gnu/gtk-2.0/modules/libcanberra-gtk-module.la", F_OK) = -1 ENOENT (No such file or directory)
access("/usr/lib/gtk-2.0/2.10.0/i686-pc-linux-gnu/modules/libcanberra-gtk-module.so", F_OK) = -1 ENOENT (No such file or directory)
access("/usr/lib/gtk-2.0/2.10.0/i686-pc-linux-gnu/modules/libcanberra-gtk-module.la", F_OK) = -1 ENOENT (No such file or directory)
access("/usr/lib/gtk-2.0/2.10.0/modules/libcanberra-gtk-module.so", F_OK) = -1 ENOENT (No such file or directory)
access("/usr/lib/gtk-2.0/2.10.0/modules/libcanberra-gtk-module.la", F_OK) = -1 ENOENT (No such file or directory)
access("/usr/lib/gtk-2.0/i686-pc-linux-gnu/modules/libcanberra-gtk-module.so", F_OK) = -1 ENOENT (No such file or directory)
access("/usr/lib/gtk-2.0/i686-pc-linux-gnu/modules/libcanberra-gtk-module.la", F_OK) = -1 ENOENT (No such file or directory)
access("/usr/lib/gtk-2.0/modules/libcanberra-gtk-module.so", F_OK) = -1 ENOENT (No such file or directory)
access("/usr/lib/gtk-2.0/modules/libcanberra-gtk-module.la", F_OK) = -1 ENOENT (No such file or directory)
stat64("libcanberra-gtk-module.so", {st_mode=S_IFREG|0644, st_size=23072, ...}) = 0
open("/lib/i386-linux-gnu/libcanberra-gtk-module.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
open("/usr/lib/i386-linux-gnu/sse2/libcanberra-gtk-module.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
open("/usr/lib/i386-linux-gnu/libcanberra-gtk-module.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
open("/lib/libcanberra-gtk-module.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
open("/usr/lib/libcanberra-gtk-module.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
write(2, "Gtk-Message: Failed to load modu"..., 57Gtk-Message: Failed to load module "canberra-gtk-module"

 As the error says, it was trying to locate libcanberra-gtk-module.so in a number of locations.

Googling the package name , I saw that the location in which it was trying to find was wrong, in locations where 32bit packages are there.

There was the solution. I was trying to load 32 bit Sublime Text on 64 bit system. Downloading a 64 bit version worked like a charm.