labunix's blog

labunixのラボUnix

vmplayer起動時の「"canberra-gtk-module"のロード失敗」に対処する。

■vmplayer起動時に以下のように「"canberra-gtk-module"のロード失敗」が出る。
 仮想マシンのサウンドデバイスは削除しているし、動作には影響は無いが、気持ち悪い。

$ apt-cache show libcanberra-gtk-module | grep -A 2 ^Description-[ej]
Description-ja: GTK+ ウィジェットのシグナルをイベントサウンドに変換
 自動的に GTK+ プログラム内の全種類のイベントに対してフックを設定し、それら
 のイベントからサウンドイベントを生成する GtkModule です。

■該当のメッセージは以下。
 ググると色んなアプリケーションで起こるようだが、対処法が見つからなかった。

$ vmplayer 2>&1 | sed s/": [a-z]"/"\n\t&"/g
Gtk-Message: Failed to load module "canberra-gtk-module"
	: libcanberra-gtk-module.so: 共有オブジェクトファイルを開けません: そのようなファイルやディレクトリはありません
Logging to /tmp/vmware-labunix/vmware-modconfig-20795.log
filename:       /lib/modules/3.2.0-4-amd64/misc/vmmon.ko
supported:      external
license:        GPL v2
description:    VMware Virtual Machine Monitor.
author:         VMware, Inc.
depends:        
vermagic:       3.2.0-4-amd64 SMP mod_unload modversions 
Gtk-Message: Failed to load module "canberra-gtk-module"
	: libcanberra-gtk-module.so: 共有オブジェクトファイルを開けません: そのようなファイルやディレクトリはありません
Gtk-Message: Failed to load module "canberra-gtk-module"
	: libcanberra-gtk-module.so: 共有オブジェクトファイルを開けません: そのようなファイルやディレクトリはありません

■原因
 確かに「libcanberra-gtk-module.so」は読み込まれていない。

$ sudo ldconfig -v 2>/dev/null | grep canberra
	libcanberra-gtk.so.0 -> libcanberra-gtk.so.0.1.8
	libcanberra-gtk3.so.0 -> libcanberra-gtk3.so.0.1.8
	libcanberra.so.0 -> libcanberra.so.0.2.5

■対処

$ dpkg -L libcanberra-gtk-module | grep "so\$"
/usr/lib/x86_64-linux-gnu/gtk-2.0/modules/libcanberra-gtk-module.so

$ echo "/usr/lib/x86_64-linux-gnu/gtk-2.0/modules" | \
  sudo tee /etc/ld.so.conf.d/gtk-2.0.conf
/usr/lib/x86_64-linux-gnu/gtk-2.0/modules

$ sudo ldconfig -v 2>/dev/null | grep canberra
	libcanberra-gtk-module.so -> libcanberra-gtk-module.so
	libcanberra-gtk.so.0 -> libcanberra-gtk.so.0.1.8
	libcanberra-gtk3.so.0 -> libcanberra-gtk3.so.0.1.8
	libcanberra.so.0 -> libcanberra.so.0.2.5

■vmplayerを起動しても、エラーは出なくなった。