Вопрос или проблема
Постоянно получаю эту ошибку:
/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
, и они не совместимы между собой.
Шаги для устранения ошибки
-
Проверьте символические ссылки: Сначала убедитесь, что
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*
Обратите внимание на версии, на которые указывают ссылки. Если они указывают на разные версии, это может вызвать проблемы.
-
Устранение конфликтующих файлов: Если вы обнаружите, что одна из библиотек указывает на старую версию, вы можете удалить конфликтующие файлы. Однако будьте осторожны, чтобы не удалить библиотеку, необходимую для работы других программ. Удалите только с осторожностью:
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
Примечание: Убедитесь, что вы сделали резервную копию или записали пути до этих файлов перед удалением, на случай, если вам нужно будет их восстановить.
-
Переустановите необходимые пакеты: После удаления конфликтующих файлов рекомендуется переустановить пакеты
glib
иgobject
, чтобы убедиться, что все зависимости установлены правильно:sudo apt-get update sudo apt-get install --reinstall libglib2.0-0 libgobject-2.0-0
-
Проверьте конфликты пакетов: Если проблема сохраняется, вы можете проверить наличие сломанных зависимостей:
sudo apt-get check
-
Перезагрузка: После выполнения всех этих действий рекомендуется перезагрузить систему, чтобы убедиться, что все изменения вступили в силу.
Заключение
Эти шаги должны помочь вам устранить ошибку symbol lookup error
для gdbus
. Если проблема остается, возможно, вам следует обратиться к документации вашего дистрибутива Linux или на форумы поддержки для более углубленного анализа. Не забывайте следить за обновлениями вашего программного обеспечения, чтобы минимизировать вероятность возникновения подобных проблем в будущем.