出于某种原因,所有(或非常多)共享库不再加载。 但是,ldconfig声称该库存在。
web6:~ # sendmail -? sendmail: error while loading shared libraries: libdb-4.8.so: cannot open shared object file: No such file or directory web6:~ # ldconfig -v | grep libdb-4.8 libdb-4.8.so -> libdb-4.8.so web6:~ # sendmail -? sendmail: error while loading shared libraries: libdb-4.8.so: cannot open shared object file: No such file or directory web6:~ # zypper -? zypper: error while loading shared libraries: libmodman.so.1: cannot open shared object file: No such file or directory web6:~ # rpm -qa | grep libdb- libdb-4_8-4.8.30-17.1.4.x86_64 libdb-4_8-32bit-4.8.30-17.1.4.x86_64 web6:~ #
有什么build议可能会发生什么?
这会影响很多程序,尽pipeApache2还是可以的。 当用户表示联系表单不再通过电子邮件提交时,我发现了这一点。
LD_DEBUG=libs sendmail -? 1927: find library=libresolv.so.2 [0]; searching 1927: search cache=/etc/ld.so.cache 1927: trying file=/lib64/libresolv.so.2 1927: 1927: find library=libnsl.so.1 [0]; searching 1927: search cache=/etc/ld.so.cache 1927: trying file=/lib64/libnsl.so.1 1927: 1927: find library=libcrypt.so.1 [0]; searching 1927: search cache=/etc/ld.so.cache 1927: trying file=/lib64/libcrypt.so.1 1927: 1927: find library=libm.so.6 [0]; searching 1927: search cache=/etc/ld.so.cache 1927: trying file=/lib64/libm.so.6 1927: 1927: find library=libdb-4.8.so [0]; searching 1927: search cache=/etc/ld.so.cache 1927: search path=/lib64/tls/x86_64:/lib64/tls:/lib64/x86_64:/lib64:/usr/lib64/tls/x86_64:/usr/lib64/tls:/usr/lib64/x86_64:/usr/lib64 (system search path) 1927: trying file=/lib64/tls/x86_64/libdb-4.8.so 1927: trying file=/lib64/tls/libdb-4.8.so 1927: trying file=/lib64/x86_64/libdb-4.8.so 1927: trying file=/lib64/libdb-4.8.so 1927: trying file=/usr/lib64/tls/x86_64/libdb-4.8.so 1927: trying file=/usr/lib64/tls/libdb-4.8.so 1927: trying file=/usr/lib64/x86_64/libdb-4.8.so 1927: trying file=/usr/lib64/libdb-4.8.so 1927: sendmail: error while loading shared libraries: libdb-4.8.so: cannot open shared object file: No such file or directory
关键是:
sendmail: error while loading shared libraries: libdb-4.8.so: cannot open shared object file: No such file or directory
您的libdb-4.8.so丢失。 这可能是升级失败或磁盘损坏的结果。 你应该重新安装它包含的软件包(在你的情况下,我使用scout或一些rpm命令找出,哪些软件包属于它,然后重新安装此软件包)。
你的其他库可能是正确的 – 只有当一个库依赖于另一个库(这次是libdb),并且这个依赖被破坏,那么它也不会被加载。
如果你的系统中有很多丢失/损坏的库,那么可能是无法启动的。
如果确实无法工作(例如某些rpm或安装脚本也需要其中一个缺失的库),则也可以手动将其复制回来。 当然,在这种情况下,你也应该定期重新安装这个软件包,这样的补丁解决scheme只能作为暂时的有效。