VMware's Remote Console is not certified to run on Debian Linux, but with a small amount of trial and error, I was able to get it working just fine and now it works flawlessly.
The Problem:
The
VMware installer puts everything it needs under the /usr/lib/vmware
directory. That's fine. But beyond that, there are several problems:
- The required libraries are in /usr/lib/vmware/lib but they are split up into subdirectories named like the actual library files, like /usr/lib/vmware/lib/libssl.so.
1.0.2/libssl.so.1.0.2
- The libraries are not added to the system's search path during install,
so when you launch Remote Console, it tries to use the existing system
libraries and not the ones delivered with the product. This can lead to a variety of different errors.
- Adding the libraries to the system's search path results in those
libraries taking precedence over the OS-delivered versions, so then
other programs like Firefox and Chrome try to use the specialized
VMware-delivered versions of these libraries when they launch, and they
fail.
- The actual executable -- /usr/lib/vmware/bin/vmrc -- is actually a symbolic link to /usr/lib/vmware/bin/appLoader.
Since appLoader uses the name of the command that was actually invoked in order to know what to do, the invoked command must be vmrc.
The Solution:
We need to create a script which sets
up the correct library path (putting every single one of those stupid
library-named subdirectories into the LD_LIBRARY_PATH environment variable) and then run the Remote Console with that library path. The name of the invoked command has to be vmrc, so I ended up creating a temporary symlink to appLoader as /tmp/vmrc and calling that from the script:
#!/bin/bash # Set the library and bin directories LIBDIR="/usr/lib/vmware/lib" BINDIR="/usr/lib/vmware/bin" # Clear the LD_LIBRARY_PATH LD_LIBRARY_PATH="" # Build the LD_LIBRARY_PATH with all of the $LIBDIR subdirectories for dir in $(find ${LIBDIR} -type d) ; do LD_LIBRARY_PATH="${dir}:${LD_LIBRARY_PATH}" done export LD_LIBRARY_PATH # Create a temporary symlink to appLoader in /tmp and run it ln -s ${BINDIR}/appLoader /tmp/vmrc /tmp/vmrc $* # Delete the symlink and exit rm -f /tmp/vmrc exit 0
Simply delete /usr/lib/vmware/bin/vmrc and replace it with this script, and it works!