Como consertar a falta do libudev.so.0 para o Chrome iniciar novamente?

27

Tentando iniciar o rendimento do chrome no seguinte erro na linha de comando:

/opt/google/chrome/chrome: error while loading shared libraries: libudev.so.0: cannot open shared object file: No such file or directory

O erro apareceu pela primeira vez no Ubuntu 13.04, tentei remover e reinstalar o Chrome. Ele persistiu após a atualização para o Ubuntu 13.10.

    
por k0pernikus 01.11.2013 / 02:58

2 respostas

17

Se o Chrome não iniciar após uma atualização do Ubuntu de ≤12.10 para ≥13.04, abra um terminal e execute o seguinte comando:

sudo dpkg-reconfigure google-chrome-stable

As explicações são as seguintes.

Pelo menos para as versões do Google Chrome 28 a 37, o binário do Google Chrome pode usar qualquer um dos libudev.so.0 ou libudev.so.1 presentes no sistema. Com a correção para Chromium / Chrome Issue 226002 (que entrou no canal instável em abril de 2013), o instalador determina qual deles usar. As referências binárias libudev.so.0 ; o instalador cria um link simbólico de /opt/google/chrome/libudev.so.0 para o libudev.so.1 no sistema se libudev.so.0 não for encontrado.

Note que seria uma má ideia criar um em /usr/lib . Os principais números de versão nas bibliotecas mudam quando a versão mais recente é incompatível. A criação deste link simbólico funciona bem para o Chrome porque ele usa apenas recursos que são compatíveis entre a versão 0 e a versão 1. Outros aplicativos podem travar ou produzir dados corrompidos se você forçá-los a executar com a versão errada.

O método usado pelo pacote do Chrome funciona bem na maioria das circunstâncias, mas ainda é um hack sujo e tem uma limitação. Se o pacote libudev0 for desinstalado depois que o Chrome for instalado, o que provavelmente acontecerá quando você fizer o upgrade do Ubuntu, o Chrome ainda estará configurado para usar libudev.so.0 , mas o arquivo não estará mais disponível. Para corrigir isso, faça com que o script de instalação seja executado novamente e, desta vez, detecte que libudev.so.0 não está disponível, portanto, crie o link simbólico para usar libudev.so.1 . Você pode executar novamente o script de instalação executando dpkg-reconfigure google-chrome-stable como root.

    
por Gilles 01.10.2014 / 18:33
35

Como Gilles apontou, essa abordagem pode levar a um comportamento indesejado. Por favor, tente sua primeira solução . Se isso não funcionar para você e você entender a implicação de que isso pode levar à corrupção silenciosa de dados, você pode fazer o seguinte:

Assumindo um sistema de 64 bits, o link simbólico ausente pode ser criado via:

sudo ln -s /lib/x86_64-linux-gnu/libudev.so.1.3.5 /usr/lib/libudev.so.0

Para um sistema de 32 bits:

sudo ln -s /lib/i386-linux-gnu/libudev.so.1.3.5  /usr/lib/libudev.so.0

Você pode ter que verificar sua versão local do libudev.

    
por k0pernikus 01.11.2013 / 02:58