Назад | Перейти на главную страницу

Не загружаются все или очень многие разделяемые библиотеки - 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

Вот ключ:

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