dbus-uuidgen retorna /usr/local/lib/libdbus-1.so.3 não encontrado

0

No meu Ubuntu 16.04.2 LTS, quando eu executo o dbus-uuidgen ele retorna:

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

a documentação diz que deveria:

print a new uuid made up out of thin air.

Mas eu tenho um /usr/local/lib/libdbus-1.so.3 como um link para /usr/local/lib/libdbus-1.so.3.16.4

Esse problema ocorreu depois que eu instalei dbus e bluez da fonte e reiniciei o sistema, então certos serviços como o serviço de login não puderam carregar na inicialização, então eu tive que remover dbus e bluez e certas dependências (junto com ubuntu-desktop) modo de recuperação, para obter o serviço de login para iniciar e fazer o login como usuário normal e reinstalar o dbus novamente. Mas agora, sempre que eu tento instalar qualquer coisa usando o apt-get, o erro dbus-uuid faz com que a instalação pare. O que eu acho estranho é que os arquivos / var / lib / dbus / machine-id e / etc / machine-id contêm um ID durante a reinicialização. o que eu acredito que prova que o dbus-uuidgen trabalha na inicialização.

Uma amostra de saída:

$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
    
por Munty 14.05.2017 / 14:27

2 respostas

0

Consegui corrigir o problema por:

  • runnig dpkg --remove --force-depends libdbus-1-3 . para remover o libdbus-1-3 sem remover suas dependências.
  • executando make clean para remover todos os remanescentes da versão dbus que eu tinha instalado ao tentar corrigir o problema.
  • comentando uma entrada deb-src que eu tinha no arquivo /etc/apt/sources.list .
  • limpando o repositório local usando apt-get clean e apt-get autoclean . - executando apt-get install -f para tentar consertar dependências quebradas.
  • e como a instalação do dbus usando apt-get install dbus falhou por causa do erro dbus-uuidgen , usei apt-get source para obter o pacote de origem e, em seguida, instalei-o manualmente e ele foi instalado sem erros. agora dbus-uuidgen funcionou e imprimiu uma string.

Eu não sei exatamente o que corrigiu o problema, mas eu acho que eu tinha uma versão diferente do dbus instalada usando uma biblioteca libdbus-1-3 que funciona apenas com a versão dbus 1.10.6-ubun amd64 (para o Ubuntu), e parece que apenas esta versão está funcionando para a minha distribuição, no meu caso. Eu acredito que a explicação do @Gilles seja mais precisa.

    
por 19.05.2017 / 00:47
0

Você tem duas versões diferentes do executável dbus-uuidgen e da biblioteca libdbus-1.so.3 que ele usa, e essas versões não são binárias compatíveis, apesar de terem o mesmo nome de arquivo. (Isso pode ser devido a diferentes opções de compilação, mas é apenas uma adivinhação sem saber exatamente como sua compilação foi configurada.) Você precisa garantir que /usr/bin/dbus-* use apenas libdbus-* bibliotecas de /lib ou /usr/lib e que /usr/bin/dbus-* usa apenas libdbus-* bibliotecas de /usr/local/lib .

Eu recomendo que você não instale programas em /usr/local que entrem em conflito com os principais programas e bibliotecas do sistema, como o D-Bus. Se você precisar de outra versão para teste, instale-a em um diretório separado que não esteja no caminho de pesquisa do executável ou da biblioteca.

    
por 16.05.2017 / 02:15