VMware ESXi 3.5U4上のDebian5やUbuntu9.04ゲストでvmware-userを動かす。

VMware ESXi 3.5U4では、Debian5やUbuntu9.04ゲストを動かしても、vmware-userが動作しない。この原因は、libexpatライブラリのバージョンにある。
vmware-userは、昔のVMwareソフトウェアでのVMware Toolboxのような機能を持っている。つまり、デスクトップが起動しているVMwareコンソール画面と、コンソールを起動しているWindowsで透過的にカーソルが動くために必要。
vmware-userはlibexpat.so.0ライブラリに依存している。しかし、Debian5、Ubuntu9.04ともにlibexpat.so.1が入っており、libexpat.so.0は入っていない。
Debian5では、non-freeカテゴリのwink - Tutorial and Presentation Creating Softwareという謎なパッケージに/usr/lib/wink/libexpat.so.0として同梱されている。Ubuntuは調べていないが、恐らく標準リポジトリには存在しないのではないかと思われる。
で、libexpat.so.1を呼び出させるという荒業で対処。
$HOME/libに、libexpat.so.1をlibexpat.so.0と名前を変更してシンボリックリンクを作成する。
$ mkdir ~/lib
$ ln -s /usr/lib/libexpat.so.1 ~/lib/libexpat.so.0
そして、これを呼び出すシェルvmware-user.shを作成する。今回は~/binに配置。内容は以下。
#!/bin/sh
LD_LIBRARY_PATH=$HOME/lib; export LD_LIBRARY_PATH
exec /usr/bin/vmware-user
基本的な話だけれど、$ chmod +x ~/bin/vmware-user.shを忘れないように。
この、~/bin/vmware-user.shを、ログイン時に自動的に読み込ませるようにする。
Debian5では[システム]→[設定]→[セッション]とメニューをクリックして、ダイアログから自動起動コマンドに/home//bin/vmware-user.shを追加すると、次回のログイン時からvmware-userが動作する。
Ubuntu9.04ではメニューがちょっとだけ異なっていて、[システム]→[設定]→[自動起動するアプリ]からダイアログを呼び出す。後はDebian5と同様。