0

On my Ubuntu 16.04.2 LTS, when I run dbus-uuidgen it returns:

dbus-uuidgen: /usr/local/lib/libdbus-1.so.3: version `LIBDBUS_PRIVATE_1.10.8' not found (required by dbus-uuidgen)

the documentation says it should:

print a new uuid made up out of thin air.

But I have a /usr/local/lib/libdbus-1.so.3 as a link to /usr/local/lib/libdbus-1.so.3.16.4

This problem occured after I installed dbus and bluez from source and rebooted the system, so certain services like login service could not load at boot, so I had to remove dbus and bluez and certain dependencies (along with ubuntu-desktop) from recovery mode, to get the login service to start and login as the normal user, and reinstall dbus again. But now whenever I try to install anything using apt-get the dbus-uuid error causes the installation to stop. What I find odd is that the /var/lib/dbus/machine-id and /etc/machine-id files contains an ID when rebooting. which I believe proves that the dbus-uuidgen works at boot.

An output sample:

$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
3
  • comment in /etc/ld.so.conf.d/libc.conf the entry /usr/local/lib out and run sudo ldconfig -v
    – user192526
    May 14, 2017 at 12:50
  • I ran it but the error is persisting. but now the link is in /lib/x86_64-linux-gnu/libdbus-1.so.3 -> libdbus-1.so.3.14.6
    – Munty
    May 14, 2017 at 13:06
  • I added an output sample of the original error to my post
    – Munty
    May 14, 2017 at 13:19

2 Answers 2

1

I managed to fix the problem by:

  • runnig dpkg --remove --force-depends libdbus-1-3. to remove libdbus-1-3 without removeing its dependencies.
  • running make clean to remove every dbus version' remainings I had installed when trying to fix the problem.
  • commenting a deb-src entry I had in /etc/apt/sources.list file.
  • cleaning the local repository using apt-get clean and apt-get autoclean. - running apt-get install -f to try to fix broken dependencies.
  • and since installing dbus using apt-get install dbus failed because of dbus-uuidgen error, I used apt-get source to get the source package and then installed it manually and it got installed without any error. now dbus-uuidgen worked, and printed a string.

I am not exactly sure what fixed the issue, but I think I had a different version of dbus installed using a libdbus-1-3 library that only works with dbus version 1.10.6-ubun amd64 (for ubuntu), and it appears that only this version is working for my distribution, in my case. I believe @Gilles explanation to be more accurate.

0

You have two different versions of the dbus-uuidgen executable and the library libdbus-1.so.3 that it uses, and these versions are not binary compatible despite having the same file name. (This may be due to different compilation options but it's only a wild guess without knowing precisely how your build was configured.) You need to ensure that /usr/bin/dbus-* only uses libdbus-* libraries from /lib or /usr/lib, and that /usr/bin/dbus-* only uses libdbus-* libraries from /usr/local/lib.

I recommend that you don't install programs in /usr/local that conflict with core system programs and libraries such as D-Bus. If you need another version for testing, install it in a separate directory that is not on the executable or library search path.

2
  • I didn't get the part of "You need to ensure that /usr/bin/dbus-* only uses..., and that /usr/bin/dbus-*...", can you clarify some more.
    – Munty
    May 21, 2017 at 10:56
  • @Munty You have two installations of dbus, one under /usr/local and one under /usr. You must make sure that the executable in /usr/local/bin uses the libdbus-* library in /usr/local/lib, and that the executable in /usr/bin only uses the libdbus-* library under /usr/lib or /lib. Better would be to remove the one from /usr/local unless you really need it, which does not appear to be the case. May 21, 2017 at 19:13

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.