我从Redhat 6.7中的源代码安装Apache 2.2.17并且看不到libexpat.so.0。但我看到/ usr / lib64中提供了libexpat.so.0,并且在ld.so.conf文件中提供了/ usr / lib64路径。
谷歌搜索后,我在SO号libexpat.so.0和libexpat.so.1中发现了兼容性问题。参考:https://geekforum.wordpress.com/2014/06/17/install-apache-httpd-http-server/。我按照上面的URL删除了缓存文件并运行了ldconfig,但仍然看到了错误。我也在/usr /lib64 / libspat.so.0的/ lib路径中创建了链接libexpat.so.0,但是没有用。
有没有人在Redhat 6.7及以上版本中看到过这个问题。对于像这样的问题,是否有任何解决方法
[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.
答案 0 :(得分:0)
当出现像这样的库问题时,我通常会检查以下几点以确保,一切都应该如此:
LD_LIBRARY_PATH
是否正确设置为包含所有包含libs的文件夹?这已经是编译时的情况。你会这样做:export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib64:/other/dir/with/libs
... ln -sf /path/to/existing/library.so /path/as/expected.so
。大多数情况下,您只需要处理文件版本结尾(.0
,.1
等)。请务必链接到正确的库和版本。另外,检查是否意外混淆了32位和64位库。根据经验,始终使用与您的lib格式和机器架构相匹配的应用程序版本(现在大多数是64位)。您不能使用具有64位库的32位应用程序,反之亦然。此外,使用一些库作为32位而其他库作为64位将不起作用。无论如何,许多64位系统通过提供32位格式的第二组库(“multilib”)来支持运行32位应用程序,因此如果64位应用程序出现故障或者是,则可以尝试运行32位应用程序不可用。