How to resolve openssl error when loading shared libraries libssl.so.1.1
1. The purpose of this post
After install openssl
, we run the below command:
openssl version
to verity the installation, but sometimes we would get this error:
[root@node1 openssl-1.1.0f]# openssl versionopenssl: error while loading shared libraries: libssl.so.1.1: cannot open shared object file: No such file or directory
2. Environments
The linux system is:
[root@node1 openssl-1.0.0f]# uname -aLinux node1 3.10.0-862.14.4.el7.x86_64 #1 SMP Wed Sep 26 15:12:11 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
3. Debug
We try to find the file named libssl.so.1.1
as follows:
[root@localhost openssl-1.1.0f]# ll /usr/lib64/libssl*-rwxr-xr-x. 1 root root 315096 8m 7 2017 /usr/lib64/libssl3.solrwxrwxrwx. 1 root root 16 7m 9 2009 /usr/lib64/libssl.so.10 -> libssl.so.1.0.2k-rwxr-xr-x. 1 root root 470336 8m 4 2017 /usr/lib64/libssl.so.1.0.2k[root@localhost openssl-1.1.0f]# ll /usr/local/lib64Total 8984drwxr-xr-x. 2 root root 39 11m 8 11:30 engines-1.1-rw-r--r--. 1 root root 4967326 11m 8 11:30 libcrypto.alrwxrwxrwx. 1 root root 16 11m 8 11:30 libcrypto.so -> libcrypto.so.1.1-rwxr-xr-x. 1 root root 2934272 11m 8 11:30 libcrypto.so.1.1-rw-r--r--. 1 root root 766182 11m 8 11:30 libssl.alrwxrwxrwx. 1 root root 13 11m 8 11:30 libssl.so -> libssl.so.1.1-rwxr-xr-x. 1 root root 521384 11m 8 11:30 libssl.so.1.1drwxr-xr-x. 2 root root 61 11m 8 11:22 pkgconfig
We can find that the libcrypto.so.1.1
is located in the /usr/local/lib64
,
But openssl try to find the .so
libraries in the LD_LIBRARY_PATH
:
[root@localhost ~]# echo $LD_LIBRARY_PATH/usr/lib64:/usr/local/lib64
So the solution is try to tell openssl where the library is
.
4. Resolve it
There are two methods to resolve this problem:
4.1 Method 1: Change the LD_LIBRARY_PATH
export LD_LIBRARY_PATH = /usr/local/lib64:$LD_LIBRARY_PATH
4.2 Method 2: Create a link to the file
[root@localhost openssl-1.1.0f]# ln -s /usr/local/lib64/libssl.so.1.1 /usr/lib64/libssl.so.1.1[root@localhost openssl-1.1.0f]# ln -s /usr/local/lib64/libcrypto.so.1.1 /usr/lib64/libcrypto.so.1.1
5. More about the LD_LIBRARY_PATH
As the linux documents shown:
Final Words + More Resources
My intention with this article was to help others who might be considering solving such a problem. So I hope that’s been the case here. If you still have any questions, don’t hesitate to ask me by email: Email me
Here are also the most important links from this article along with some further resources that will help you in this scope:
- 👨💻 Linux shared libraries documents
- 👨💻 LIBRARY_PATH vs LD_LIBRARY_PATH
- 👨💻 the full linux shared libary documents
Oh, and if you found these resources useful, don’t forget to support me by starring the repo on GitHub!