web-dev-qa-db-fra.com

Comment réparer libudev.so.0 manquant pour Chrome pour recommencer?

Essayer de démarrer chrome génère l'erreur suivante sur la ligne de commande:

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

L'erreur est apparue pour la première fois dans Ubuntu 13.04, j'ai essayé de purger et de réinstaller Chrome. Il a persisté après la mise à niveau vers Ubuntu 13.10.

27
k0pernikus

Si Chrome ne démarre pas après une mise à niveau Ubuntu de ≤ 12.10 à ≥ 13.04, ouvrez un terminal et exécutez la commande suivante:

Sudo dpkg-reconfigure google-chrome-stable

Les explications suivent.


Au moins pour les versions de Chrome, du 28 au 37, le binaire Chrome peut utiliser le code libudev.so.0 ou libudev.so.1 présent sur le système. Avec le correctif à Chromium/Chrome Issue 226002 (entré dans le canal instable en avril 2013), le programme d'installation détermine lequel utiliser. Les références binaires libudev.so.0; le programme d'installation crée un lien symbolique de /opt/google/chrome/libudev.so.0 vers le libudev.so.1 sur le système si libudev.so.0 est introuvable.

Notez que ce serait une mauvaise idée d’en créer un dans /usr/lib. Les numéros de version majeurs dans les bibliothèques changent lorsque la version la plus récente est incompatible. La création de ce lien symbolique fonctionne bien pour Chrome, car il utilise uniquement des fonctionnalités compatibles entre la version 0 et la version 1. D'autres applications peuvent se bloquer ou produire des données corrompues si vous les forcez à s'exécuter avec une version incorrecte.

La méthode utilisée par le package Chrome fonctionne bien dans la plupart des cas, mais il s’agit toujours d’un hack sale et elle a une limitation. Si le paquet libudev0 est désinstallé après l'installation de Chrome, ce qui risque de se produire lors de la mise à niveau d'Ubuntu, alors Chrome sera toujours configuré pour utiliser libudev.so.0 mais le fichier ne sera pas disponible plus. Pour résoudre ce problème, exécutez à nouveau le script d'installation et détectez cette fois que libudev.so.0 n'est pas disponible. Le lien symbolique doit donc être créé pour utiliser libudev.so.1 à la place. Vous pouvez réexécuter le script d'installation en exécutant dpkg-reconfigure google-chrome-stable en tant que root.

17
Gilles

Comme Gilles l'a fait remarquer, cette approche peut conduire à un comportement indésirable. S'il vous plaît essayez sa solution en premier . Si cela ne fonctionne pas pour vous et que vous comprenez que cela peut entraîner une corruption de données silencieuse , vous pouvez procéder comme suit:

En supposant un système 64 bits, le lien symbolique manquant peut être créé via:

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

Pour Ubuntu 18:

Sudo ln -s /lib/x86_64-linux-gnu/libudev.so.1.6.9 /usr/lib/libudev.so.0

Pour un système 32 bits:

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

Vous devrez peut-être vérifier votre version locale de libudev.

36
k0pernikus