ошибка поиска символов gdbus

Вопрос или проблема

Постоянно получаю эту ошибку:

/usr/bin/gdbus: ошибка поиска символа: /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0: неопределенный символ: g_date_copy

Посмотрев на:

root@server-sl:~# ldd /usr/bin/gdbus

linux-vdso.so.1 (0x00007ffefddfa000)
libgio-2.0.so.0 => /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0 (0x00007f77eaa5e000)
libgobject-2.0.so.0 => /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0 (0x00007f77eaa0a000)
libgmodule-2.0.so.0 => /usr/lib/x86_64-linux-gnu/libgmodule-2.0.so.0 (0x00007f77eaa04000)
libglib-2.0.so.0 => /lib/x86_64-linux-gnu/libglib-2.0.so.0 (0x00007f77ea6f5000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f77ea538000)
libpcre.so.3 => /lib/x86_64-linux-gnu/libpcre.so.3 (0x00007f77ea4c4000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f77ea4a1000)
libffi.so.6 => /usr/lib/x86_64-linux-gnu/libffi.so.6 (0x00007f77ea298000)
libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007f77ea07a000)
libselinux.so.1 => /lib/x86_64-linux-gnu/libselinux.so.1 (0x00007f77e9e52000)
libresolv.so.2 => /lib/x86_64-linux-gnu/libresolv.so.2 (0x00007f77e9e39000)
libmount.so.1 => /lib/x86_64-linux-gnu/libmount.so.1 (0x00007f77e9ddd000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f77e9dd6000)
/lib64/ld-linux-x86-64.so.2 (0x00007f77eac33000)
libblkid.so.1 => /lib/x86_64-linux-gnu/libblkid.so.1 (0x00007f77e9d84000)
librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007f77e9d7a000)
libuuid.so.1 => /lib/x86_64-linux-gnu/libuuid.so.1 (0x00007f77e9d71000)

и проверяя это:

root@server-sl:~# ls -l /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0

    lrwxrwxrwx 1 root root 26 сен 22 05:53 /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0 -> libgobject-2.0.so.0.5800.1

Не могу понять, в чем проблема.
Я на сервере DebianLinux server-sl 4.18.0-2-amd64 #1 SMP Debian 4.18.10-2 (2018-11-02) x86_64 GNU/Linux

Появилась аналогичная проблема после обновления до 18.04 с 16.04

Также возникли проблемы, такие как медленная авторизация по ssh, медленная работа dpkg и apt (процесс всегда застревал на долгое время во время “обработки триггеров”)

Решение было слишком простым:

ls -il /lib/x86_64-linux-gnu/libglib-2.0.so*
ls -il /usr/lib/x86_64-linux-gnu/libglib-2.0.so*

И я столкнулся с ситуацией, когда

/lib/x86_64-linux-gnu/libglib-2.0.so.0 -> libglib-2.0.so.0.3200.4
/lib/x86_64-linux-gnu/libglib-2.0.so.0.3200.4

Указывало на libglib-2.0.so.0.3200.4, в то время как

/usr/lib/x86_64-linux-gnu/libglib-2.0.so.0 -> libglib-2.0.so.0.5600.4
/usr/lib/x86_64-linux-gnu/libglib-2.0.so.0.5600.4

Указывает на более новую версию.

Таким образом, решение состоит в том, чтобы удалить файлы в папке /lib/

rm /lib/x86_64-linux-gnu/libglib-2.0.so.0
rm /lib/x86_64-linux-gnu/libglib-2.0.so.0.3200.4

Ответ или решение

Ошибка, с которой вы столкнулись, связана с несовместимостью версий библиотек, используемых вашим приложением gdbus. Ключевое сообщение об ошибке указывает на то, что символ g_date_copy не может быть найден в библиотеке libgobject-2.0.so.0. Это может происходить, если у вас существуют несколько версий libglib и libgobject, и они не совместимы между собой.

Шаги для устранения ошибки

  1. Проверьте символические ссылки: Сначала убедитесь, что libglib-2.0.so.0 и libgobject-2.0.so.0 ссылаются на корректные версии. Выполните следующие команды:

    ls -il /lib/x86_64-linux-gnu/libglib-2.0.so*
    ls -il /usr/lib/x86_64-linux-gnu/libglib-2.0.so*

    Обратите внимание на версии, на которые указывают ссылки. Если они указывают на разные версии, это может вызвать проблемы.

  2. Устранение конфликтующих файлов: Если вы обнаружите, что одна из библиотек указывает на старую версию, вы можете удалить конфликтующие файлы. Однако будьте осторожны, чтобы не удалить библиотеку, необходимую для работы других программ. Удалите только с осторожностью:

    sudo rm /lib/x86_64-linux-gnu/libglib-2.0.so.0
    sudo rm /lib/x86_64-linux-gnu/libglib-2.0.so.0.3200.4

    Примечание: Убедитесь, что вы сделали резервную копию или записали пути до этих файлов перед удалением, на случай, если вам нужно будет их восстановить.

  3. Переустановите необходимые пакеты: После удаления конфликтующих файлов рекомендуется переустановить пакеты glib и gobject, чтобы убедиться, что все зависимости установлены правильно:

    sudo apt-get update
    sudo apt-get install --reinstall libglib2.0-0 libgobject-2.0-0
  4. Проверьте конфликты пакетов: Если проблема сохраняется, вы можете проверить наличие сломанных зависимостей:

    sudo apt-get check
  5. Перезагрузка: После выполнения всех этих действий рекомендуется перезагрузить систему, чтобы убедиться, что все изменения вступили в силу.

Заключение

Эти шаги должны помочь вам устранить ошибку symbol lookup error для gdbus. Если проблема остается, возможно, вам следует обратиться к документации вашего дистрибутива Linux или на форумы поддержки для более углубленного анализа. Не забывайте следить за обновлениями вашего программного обеспечения, чтобы минимизировать вероятность возникновения подобных проблем в будущем.

Оцените материал
Добавить комментарий

Капча загружается...