Error while loading shared libraries: libgd so. 2: Cannot open shared object error

This error is reported when installing and starting nginx today: error while loading shared libraries: libgd so. 2: Cannot open shared object. I checked the relevant information on the Internet and solved it. This record also allows friends who encounter this problem to solve it quickly.

First, let's talk about the solution to help the friend who is anxious to solve the problem. This is because the gd library is missing. Just install it. Installation method: 1. It's easiest to install gd directly using yum. 2. If Yum can't find the installation package of gd library, you can manually download the corresponding RPM package. Download address: http://rpmfind.net/linux/rpm2html/search.php?query=libgd.so.2 Install after downloading.

After installation, start nginx normally.

Let's talk about the troubleshooting steps. You can refer to this method to solve similar problems in the future.

According to the error message, it is libgd so. 2 class library file loading failed. In this case, either lib is not installed or the installation location is not in the correct location. Check the class library files that nginx depends on through the ldd command:

ldd /usr/local/nginx/sbin/nginx  
linux-vdso.so.1 =>  (0x00007fffd5fb6000)  
libpthread.so.0 => /lib64/libpthread.so.0 (0x000000379e200000)  
libcrypt.so.1 => /lib64/libcrypt.so.1 (0x000000393f200000)  
libpcre.so.0 => /lib64/libpcre.so.0 (0x00000033d5800000)  
libssl.so.10 => /usr/lib64/libssl.so.10 (0x0000003c60200000)  
libcrypto.so.10 => /usr/lib64/libcrypto.so.10 (0x0000003df9800000)  
libdl.so.2 => /lib64/libdl.so.2 (0x000000390be00000)  
libz.so.1 => /lib64/libz.so.1 (0x0000003a25600000)  
libc.so.6 => /lib64/libc.so.6 (0x0000003a24200000)  
libgd.so.2 => not found  
/lib64/ld-linux-x86-64.so.2 (0x0000003a23e00000)  
libfreebl3.so => /lib64/libfreebl3.so (0x000000393ea00000)  
libgssapi_krb5.so.2 => /lib64/libgssapi_krb5.so.2 (0x000000379fa00000)  
libkrb5.so.3 => /lib64/libkrb5.so.3 (0x000000379d200000)  
libcom_err.so.2 => /lib64/libcom_err.so.2 (0x000000379e600000)  
libk5crypto.so.3 => /lib64/libk5crypto.so.3 (0x0000003df9c00000)  
libkrb5support.so.0 => /lib64/libkrb5support.so.0 (0x0000003dfa800000)  
libkeyutils.so.1 => /lib64/libkeyutils.so.1 (0x0000003dfa400000)  
libresolv.so.2 => /lib64/libresolv.so.2 (0x0000003a26a00000)  
libselinux.so.1 => /lib64/libselinux.so.1 (0x0000003df7c00000)  

Found this, not found, libgd so. 2 => not found

A search on the Internet shows that this library comes with the gd installation package. If you confirm that gd has been installed, then this library is on the system. Find this file through the find command

find / -name 'libgd.so.2'

After finding it, you can copy it to the corresponding lib directory. If not, you can only reinstall it. How do we know the name of the package to be installed? Very simple, you can baidu search this libgd so. 2. You can find out which installation package the library file comes from. Or you can check this website, http://rpmfind.net/linux/rpm2html/search.php?query=libgd.so.2 , it is found that this class library is from the GD installation package

before

Use yum search gd to search. If yes, use yum install gd directly

It's OK. If not, you can also find the installation package that conforms to your own system through the website above (mainly depending on the operating system version number. There are still 32-bit or 64 bit, and the new version is 64 bit). Download it, and then install it through the corresponding command. The solutions to the lack of other class library files are similar.

Keywords: Linux Nginx

Added by purplenewt on Tue, 14 Dec 2021 21:38:22 +0200