Como corrigir libudev.so.0 ausente para o Chrome iniciar novamente?

27

A tentativa de iniciar o chrome produz o 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 limpar e reinstalar o Chrome. Ele persistiu após a atualização para o Ubuntu 13.10.

k0pernikus
fonte

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

Seguem explicações.


Pelo menos para o Chrome versões formar 28 a 37, o binário Chrome pode usar-se qualquer de libudev.so.0ou libudev.so.1está presente no sistema. Com a correção do 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.0para libudev.so.1o sistema, se libudev.so.0não for encontrado.

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

O método usado pelo pacote Chrome funciona bem na maioria das circunstâncias, mas ainda é um truque sujo e tem uma limitação. Se o libudev0pacote for desinstalado após a instalação do Chrome, o que provavelmente acontecerá quando você atualizar o Ubuntu, o Chrome ainda estará configurado para uso, libudev.so.0mas 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.0não está disponível; portanto, crie o link simbólico a ser usado libudev.so.1. Você pode executar novamente o script de instalação executando dpkg-reconfigure google-chrome-stablecomo root.

Gilles 'SO- parar de ser mau'
fonte
36

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

Supondo 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 o Ubuntu 18:

sudo ln -s /lib/x86_64-linux-gnu/libudev.so.1.6.9 /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

Pode ser necessário verificar sua versão local do libudev.

k0pernikus
fonte
1
Esta resposta também se aplica a problemas como "O Google Chrome não inicia após a atualização para a 13.10".
Sri
Isso também funciona para o Dartium (a versão de desenvolvimento do Chromium com o Dart VM incorporado). Embora eu tenha criado o link contra o link libudev.so.1, na esperança de que, se a versão mudar, o link ainda funcione, mas não tenho certeza. A única coisa que posso dizer é que funcionou para mim. Kubuntu 14.10.
precisa saber é o seguinte
2
Essa é uma péssima idéia: funciona para o Chrome, mas pode interromper outros programas que não vêm do Ubuntu - em vez de receber uma mensagem de erro, você pode obter corrupção de dados silenciosa.
Gilles 'SO- stop be evil' em
Isso funciona para mim
Sungguk Lim 06/04