試験運用中なLinux備忘録・旧記事

はてなダイアリーで公開していた2007年5月-2015年3月の記事を保存しています。

VMware Player 2.0.0-45731(x86_64版)が起動しなかった問題に対処

Gentoo LinuxのOverlay*1でインストールしたVMware Player 2.0.0-45731だったが、仮想マシンの選択までいく前に落ちてしまう。

$ /opt/vmware/player/bin/vmplayer
GTK Accessibility Module initialized
/opt/vmware/player/lib/bin/vmplayer: symbol lookup error: /opt/vmware/player/lib/lib/libvmwareui.so.0/libvmwareui.so.0: undefined symbol: _ZN3Gtk13RecentManager11get_defaultEv

VMWARE_USE_SHIPPED_GTK=yes(force)」を付けるとよい、という情報をもとに実行したが失敗。「force」を付けてもだめだった。

$ VMWARE_USE_SHIPPED_GTK=yes /opt/vmware/player/bin/vmplayer
GTK Accessibility Module initialized
/opt/vmware/player/lib/bin/vmplayer: symbol lookup error: /usr/lib/libspi.so.0: undefined symbol: atk_hyperlink_impl_get_type

今度はATKライブラリに未解決シンボルがあるということで、バージョンを上げてみた(1.12.4 -> 1.18.0)。が変化なし。
VMware Playerは、GTK+や関連ライブラリを同梱している、ということを思い出し、システムのATKライブラリで置き換えてみることにした。

$ sudo mv /opt/vmware/player/lib/lib/libatk-1.0.so.0/libatk-1.0.so.0 /opt/vmware/player/lib/lib/libatk-1.0.so.0/libatk-1.0.so.0.orig
$ sudo cp /usr/lib/libatk-1.0.so.0 /opt/vmware/player/lib/lib/libatk-1.0.so.0 -i
$ VMWARE_USE_SHIPPED_GTK=yes /opt/vmware/player/bin/vmplayer

これで起動成功。これはVMware側による「バグ」ということだろうか。後で確認したのだが、システムのATKのバージョンを1.12.4に戻して、その中のlibatk-1.0.so.0で置き換えても動作し、1.18.0を使用する必要がないことも分かった。
(2007/6/19)更に、システムのATKライブラリでVMware Player側のファイルを上書きしなくても、

$ VMWARE_USE_SHIPPED_GTK=yes LD_PRELOAD=/usr/lib/libatk-1.0.so /opt/vmware/player/bin/vmplayer

で実行できることも分かった。
あとは
[任意]ファイル名: ~/bin/vmplayer

#! /bin/sh
VMWARE_USE_SHIPPED_GTK=yes LD_PRELOAD=/usr/lib/libatk-1.0.so /opt/vmware/player/bin/vmplayer "$@"

このようなファイルを作成して実行させる。
(2007/6/21)バージョン2では、ファイル選択ダイアログを開いてvmxファイルを選択する以外に、「最近開いた仮想マシンリスト」からも選択ができて便利なのだが、従来と同様、引数にvmxファイルの場所を指定する起動方法も可能なので、メニューやランチャに登録する場合、実行コマンドの部分に

~/bin/vmplayer [vmxファイルの場所]

のように書くと*2一発で起動させられるので、こちらのほうが便利かも。


(2007/7/9)現在はGentoo Linux公式のパッケージが利用できる。まだテスト中ということでハードマスクされているままなので、/etc/portage/package.unmask

>=app-emulation/vmware-workstation-6
>=app-emulation/vmware-player-2
>=app-emulation/vmware-modules-1.0.0.16

を記述することでマスクを外しておく必要がある。
なお、手元の環境ではGentoo公式のパッケージに入れ直しているが、この記事の問題点はすでに解消され、

$ /opt/vmware/player/bin/vmplayer &

で起動できている。
(2007/11/14)ハードマスクの外された、より新しいバージョンが使用できるようになっている。が、Overlayのほうが取り込みが早いようだ。2.0.2-59824で、動作上の大きな問題は起きていない。

*1:Gentoo Linux公式以外のパッケージを同じパッケージシステムで追加する仕組み

*2:vmxファイルの場所は、フルパスで書くのが無難だが、Xfce4では${HOME}からの相対パスで「.vmware/foo/bar.vmx」のような形でも書ける