Troubleshooting Dynamic Libraries

On Windows, the SSL library is placed in the same directory as other vixDiskLib dynamically loaded libraries. On Linux, functions that load the libraries
libssl.so.0.9.8
and
libcrypto.so.0.9.8
do the following:
  1. Attempt to load them from the environment’s
    LD_LIBRARY_PATH
    location.
  2. Next, attempt to load them from the directory where
    libvixDiskLib.so
    is located.
  3. Next, attempt to load them from the directory where the executable is located.
  4. Failing that, exit with an error.
On install, VDDK creates the directory
/usr/lib/vimware-vix-disklib
, populated with 64-bit executables and libraries placed into subdirectories
bin64
and
lib64
. On determining the OS type, VDDK copies the vixDiskLib and vixMntapi libraries into
/usr/lib
. It does not copy
libssl.so.0.9.8
or
libcrypto.so.0.9.8
into
/usr/lib
.
On execution, the root user normally has no
LD_LIBRARY_PATH
, and
/usr/lib
is ahead of
/opt/vmware/lib
in the path. Running the
ldd
command can help diagnose where a program is getting
libvixDiskLib.so
and other libraries. The
/opt/vmware/lib
directory is neither created nor updated by the VDDK install script.
If you see the error “Failed to load library libcrypto.so.0.9.8” there are several solutions:
  • Set or reset the
    LD_LIBRARY_PATH
    environment so it contains one of the directories above,
    /lib64
    and possibly
    /bin64
    , before it contains
    /usr/lib
    .
  • Change the symbolic link in
    /opt/vmware/lib
    (or elsewhere) so it points to the directory above,
    /lib64
    .
  • Copy the
    libssl
    and
    libcrypto
    libraries from
    /usr/lib/vmware-vix-disklib/lib64
    into
    /usr/lib
    .