Yesterday I updated my Gentoo system and today i figured out, that my vmware-server-console doesn’t start anymore. Great. It just aborts with a symbol lookup error:
/opt/vmware/server/console/lib/bin/vmware-server-console: symbol lookup error: /usr/lib/libgio-2.0.so.0: undefined symbol: g_thread_gettime
It looks like the old vmware-server-console doesn’t work with newer glib versions. Currently dev-libs/glib-2.18.4-r1 runs on my system. As far as I know the vmware-server-console is quite old and is marked as obsolete by vmware. But nevertheless on my Gentoo system it is still the stable version and I don’t like installing unstable software on productive servers. Also installing the latest Vmware Server 2 by myself doesn’t come into question, because I don’t want to care about security updates by myself. Therefore I have to find a working solution for the old vmware-server-console. After trying a bit, I spotted that
works. Confusing, eh?
Now the questions is, what is the difference between running the vmware-server-console as superuser and as normal user? The answer is simple: environment variables change while calling
sudo. Keeping this in mind, I found out, that the two environment variables
GTK2_RC_FILES are not set for root. Let’s try if this leads to the solution:
$ unset GTK_RC_FILES
$ unset GTK2_RC_FILES
Indeed! It Works!
Finally I made these changes permanent by adding the following lines to the beginning of /opt/vmware/server/console/bin/vmware-server-console (near line 13):
# workaround for symbol lookup error:
and this snippet to the end of the script to restore the environment variables (on my Gentoo system after line 186):