dbus-uuidgen возвращает /usr/local/lib/libdbus-1.so.3 not found

На моей Ubuntu 16.04.2 LTS, когда я запускаю dbus-uuidgen, он возвращает:

dbus-uuidgen: /usr/local/lib/libdbus-1.so.3: версия `LIBDBUS_PRIVATE_1.10.8' не найдена (требуется dbus-uuidgen)

в документации сказано, что он должен:

печатать новый uuid, придуманный из воздуха.

Но у меня есть /usr/local/lib/libdbus-1.so.3 как ссылка на /usr/local/lib/libdbus-1.so.3 .16.4

Эта проблема возникла после того, как я установил dbus и bluez из исходников и перезагрузил систему, поэтому некоторые службы, такие как служба входа, не могли загрузиться при загрузке, поэтому мне пришлось удалить dbus и bluez и некоторые зависимости (вместе с ubuntu-desktop) из режима восстановления, чтобы служба входа запустилась и вошла как обычный пользователь, и снова установить dbus. Но теперь, когда я пытаюсь установить что-либо с помощью apt-get, ошибка dbus-uuid приводит к остановке установки. Странным мне кажется то, что файлы /var/lib/dbus/machine-id и /etc/machine-id содержат ID при перезагрузке. что, как я полагаю, доказывает, что dbus-uuidgen работает при загрузке.

Пример вывода:

$sudo apt-get install bluez
Reading package lists...
Building dependency tree...
Reading state information...
The following additional packages will be installed:
  dbus
Suggested packages:
  dbus-user-session | dbus-x11
The following NEW packages will be installed:
  bluez dbus
0 upgraded, 2 newly installed, 0 to remove and 0 not upgraded.
Need to get 1,041 kB of archives.
After this operation, 4,767 kB of additional disk space will be used.
Do you want to continue? [Y/n] Get:1 http://ma.archive.ubuntu.com/ubuntu xenial-updates/main amd64 dbus amd64 1.10.6-1ubuntu3.3 [142 kB]
Get:2 http://ma.archive.ubuntu.com/ubuntu xenial/main amd64 bluez amd64 5.37-0ubuntu5 [899 kB]
Fetched 1,041 kB in 2s (383 kB/s)
Selecting previously unselected package dbus.
(Reading database ... 
(Reading database ... 5%
(Reading database ... 10%
(Reading database ... 15%
(Reading database ... 20%
(Reading database ... 25%
(Reading database ... 30%
(Reading database ... 35%
(Reading database ... 40%
(Reading database ... 45%
(Reading database ... 50%
(Reading database ... 55%
(Reading database ... 60%
(Reading database ... 65%
(Reading database ... 70%
(Reading database ... 75%
(Reading database ... 80%
(Reading database ... 85%
(Reading database ... 90%
(Reading database ... 95%
(Reading database ... 100%
(Reading database ... 270712 files and directories currently installed.)
Preparing to unpack .../dbus_1.10.6-1ubuntu3.3_amd64.deb ...
Unpacking dbus (1.10.6-1ubuntu3.3) ...
Selecting previously unselected package bluez.
Preparing to unpack .../bluez_5.37-0ubuntu5_amd64.deb ...
Unpacking bluez (5.37-0ubuntu5) ...
Processing triggers for systemd (229-4ubuntu17) ...
Processing triggers for ureadahead (0.100.0-19) ...
ureadahead will be reprofiled on next reboot
Processing triggers for man-db (2.7.5-1) ...
Setting up dbus (1.10.6-1ubuntu3.3) ...
dbus-uuidgen: /usr/local/lib/libdbus-1.so.3: version LIBDBUS_PRIVATE_1.10.18' not found (required by dbus-uuidgen)
dpkg: error processing package dbus (--configure):
 subprocess installed post-installation script returned error exit status 1
dpkg: dependency problems prevent configuration of bluez:
 bluez depends on dbus; however:
  Package dbus is not configured yet.

dpkg: error processing package bluez (--configure):
 dependency problems - leaving unconfigured
Errors were encountered while processing:
 dbus
 bluez
0
16.05.2017, 03:10
2 ответа

Мне удалось решить проблему следующим образом:

  • запустив dpkg --remove --force-depends libdbus-1-3. удалить libdbus-1-3 без удаления его зависимостей.
  • запуск make clean для удаления всех оставшихся версий dbus, которые я установил при попытке решить проблему.
  • комментирует запись deb-src, которая у меня была в файле /etc/apt/sources.list.
  • очистка локального репозитория с помощью apt-get clean и apt-get autoclean. - запуск apt-get install -f, чтобы попытаться исправить сломанные зависимости.
  • и поскольку установка dbus с помощью apt-get install dbus не удалась из-за ошибки dbus-uuidgen, я использовал apt-get source, чтобы получить исходный пакет а затем установил его вручную, и он установился без каких-либо ошибок. теперь dbus-uuidgen сработало и напечатало строку.

Я не совсем уверен, что решило проблему, но я думаю, что у меня была установлена ​​другая версия dbus с использованием библиотеки libdbus-1-3, которая работает только с dbus версии 1.10.6-ubun amd64 (для ubuntu), и похоже, что в моем случае для моего дистрибутива работает только эта версия. Я считаю, что объяснение @Gilles более точное.

1
28.01.2020, 02:46

У вас есть две разные версии исполняемого файла dbus-uuidgen и библиотеки libdbus-1.so.3, которые он использует, и эти версии не являются двоично-совместимыми, несмотря на то, что имеют одно и то же имя файла.(Это может быть связано с разными параметрами компиляции, но это всего лишь догадка, не зная точно, как была настроена ваша сборка.) Вы должны убедиться, что /usr/bin/dbus-* использует только libdbus -* библиотеки из /lib или /usr/lib, а /usr/bin/dbus-* использует только libdbus- * библиотеки из /usr/local/lib.

Я рекомендую не устанавливать в /usr/local программы, конфликтующие с базовыми системными программами и библиотеками, такими как D-Bus. Если вам нужна другая версия для тестирования, установите ее в отдельный каталог, который не находится в пути поиска исполняемого файла или библиотеки.

0
28.01.2020, 02:46

Теги

Похожие вопросы