MATLAB: How to workaround “error while loading shared libraries: libssl.so.1.0.0: cannot open shared object file: No such file or directory” when installing compiled application on RHEL

MATLAB Compilerrhelstandalone

When trying to launch the installer of a MATLAB compiled application on RHEL 6.9, I have encountered the following error:
error while loading shared libraries: libssl.so.1.0.0: cannot open shared object file: No such file or directory
I have checked that the libssl.so.1.0.0 is installed on my system:
[root@user~]# find /usr -name "*libssl*" -print
/usr/local/MATLAB/MATLAB_Runtime/v92/sys/jxbrowser/glnxa64/xulrunner/xulrunner-linux-64/libssl3.so
/usr/local/MATLAB/MATLAB_Runtime/v92/bin/glnxa64/libssl.so.1.0.0
/usr/local/MATLAB/MATLAB_Runtime/v92/bin/glnxa64/libssl.so.1
/usr/local/MATLAB/R2017a/sys/jxbrowser/glnxa64/xulrunner/xulrunner-linux-64/libssl3.so
/usr/local/MATLAB/R2017a/bin/glnxa64/libssl.so.1.0.0
/usr/local/MATLAB/R2017a/bin/glnxa64/libssl.so.1
/usr/lib64/libssl.so.6
/usr/lib64/libssl.so.10
/usr/lib64/libssl3.so
/usr/lib64/.libssl.so.1.0.1e.hmac
/usr/lib64/pkgconfig/libssl.pc
/usr/lib64/.libssl.so.0.9.8e.hmac
/usr/lib64/libssl.so.1.0.1e
/usr/lib64/libssl.so.0.9.8e
/usr/lib64/libssl.so
What is the cause of the issue and how do I workaround this?

Best Answer

The problem is that the filenames of the installed system libraries do not quite match up with what the compiled application installer is expecting for libssl.so.1.0.0 and libcrypto.so.1.0.0 on the host system.
There are a few ways to solve this, but to resolve it just for purposes of completing the installation, do something like the following under RHEL 6.9 command line:
$ mkdir /tmp/my_install
$ cp ./MyAppInstaller_web.install /tmp/my_install
$ cd /tmp/my_install
$ ln -s /usr/lib64/libssl.so.1.0.1e libssl.so.1.0.0
$ ln -s /usr/lib64/libcrypto.so.1.0.1e libcrypto.so.1.0.0
$ ./MyAppInstaller_web.install
The above steps will allow the installer to run just from the /tmp/my_install directory without impacting anything else. To make these changes accessible from anywhere, create the equivalent symbolic links within the /usr/lib64 directory.
Although the above is tested on a RHEL 6.9 system, it is possible that the library names may be slightly different for different installations. If so, the above steps should be modified to use the equivalent library names as found by searching the contents of /usr/lib64. Please search for filename patterns including "ssl" and "crypto" as substrings.
If none of the above steps work, please try running the following command to see what dynamic library linkages may still be missing:
$ ldd ./MyAppInstaller_web.install
Related Question