Не удается загрузить все или очень много общих библиотек - openSUSE

По какой-то причине все (или очень многие) разделяемые библиотеки больше не загружаются. Однако 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:~ #

Какие-нибудь предложения относительно того, что могло бы случиться?

Это влияет на многие программы, хотя Apache2 все еще в порядке. Я обнаружил это, когда пользователь сказал, что контактная форма больше не отправляется по электронной почте.

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

1 ответ

Решение

Вот ключ:

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 или скрипты установки также захотят одну из отсутствующих библиотек), вы также можете скопировать ее обратно вручную. Конечно, в этом случае вам следует регулярно переустанавливать этот пакет, такое исправленное решение действует только временно.

Другие вопросы по тегам