Apache http 2.2.17安装错误 - 找不到libexpat.so.0

时间:2016-01-04 10:06:13

标签: apache http

我从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. 

1 个答案:

答案 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位应用程序不可用。