Reputation: 1097
I am installing Apache 2.2.17 from source in Redhat 6.7 and seeing libexpat.so.0 not found. But I see the libexpat.so.0 available in /usr/lib64 and having /usr/lib64 path available in ld.so.conf file.
After googling i found its a compatibility issue in the SO number libexpat.so.0 and libexpat.so.1. Reference:https://geekforum.wordpress.com/2014/06/17/install-apache-httpd-http-server/. I did removed the cache file following the above URL and ran ldconfig, but still seeing the error. I also did created the link libexpat.so.0 in /lib path to /usr/lib64/libexpat.so.0 but didn't work.
Does anyone seen this issue in Redhat 6.7 and above. Is there any workaround for issues like this.
[root@servername ~]# ldd /local/installs/2.2.17/bin/httpd
linux-gate.so.1 => (0x00627000)
libm.so.6 => /lib/libm.so.6 (0x00477000)
libaprutil-1.so.0 => /local/installs/2.2.17/lib/libaprutil-1.so.0 (0x002ec000)
**libexpat.so.0 => not found**
libapr-1.so.0 => /local/installs/2.2.17/lib/libapr-1.so.0 (0x00298000)
librt.so.1 => /lib/librt.so.1 (0x00b61000)
libcrypt.so.1 => /lib/libcrypt.so.1 (0x00182000)
libpthread.so.0 => /lib/libpthread.so.0 (0x00a89000)
libdl.so.2 => /lib/libdl.so.2 (0x0032d000)
libc.so.6 => /lib/libc.so.6 (0x0086e000)
/lib/ld-linux.so.2 (0x00ce8000)
**libexpat.so.0 => not found**
libfreebl3.so => /lib/libfreebl3.so (0x0024e000)
[edit] This issue is resolved.
Upvotes: 2
Views: 4186
Reputation: 2047
When library problems like this one occur, I usually check the following points to make sure, everything is like it should:
LD_LIBRARY_PATH
correctly set to include all the folders containing libs? This has to be the case at compile time already. You would do it like this: export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib64:/other/dir/with/libs
...ln -sf /path/to/existing/library.so /path/as/expected.so
. Mostly you will only have to fiddle with the file version endings (.0
, .1
, etc.) Please be sure to link to the correct library and version.Also, check if you are accidentally mixing up 32 bit and 64 bit libs. As a rule of thumb, always use an application version matching your lib format and machine architecture (nowadays mostly 64bit). You cannot use a 32 bit application with 64 bit libs and vice versa. Also, using some libs as 32 bit and others as 64 bit won't work. Anyway, many 64 bit systems support running 32 bit applications by providing a second set of libs in 32 bit format ("multilib"), so you could try to run the 32 bit application if the 64 bit one fails or is not available.
Upvotes: 1