Come risolvere libudev.so.0 mancante per Chrome per ricominciare?


27

Tentativo di avviare i rendimenti di Chrome nel seguente errore sulla riga di comando:

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

L'errore è apparso per la prima volta in Ubuntu 13.04, ho provato a eliminare e reinstallare Chrome. È persistito dopo l'aggiornamento a Ubuntu 13.10.

Risposte:


17

Se Chrome non si avvia dopo un aggiornamento di Ubuntu da ≤12.10 a ≥13.04, aprire un terminale ed eseguire il comando seguente:

sudo dpkg-reconfigure google-chrome-stable

Seguono le spiegazioni.


Almeno per le versioni di Chrome da 28 a 37, il binario di Chrome può usare qualunque libudev.so.0o libudev.so.1sia presente sul sistema. Con la correzione al numero 226002 di Chromium / Chrome (che è entrato nel canale instabile nell'aprile 2013), il programma di installazione determina quale utilizzare. I riferimenti binari libudev.so.0; il programma di installazione crea un collegamento simbolico da /opt/google/chrome/libudev.so.0al libudev.so.1sistema se libudev.so.0non viene trovato.

Si noti che sarebbe una cattiva idea crearne uno /usr/lib. I numeri di versione principali nelle librerie cambiano quando la versione più recente è incompatibile. La creazione di questo collegamento simbolico funziona bene per Chrome perché utilizza solo funzioni compatibili tra la versione 0 e la versione 1. Altre applicazioni potrebbero arrestarsi in modo anomalo o produrre dati corrotti se si forzano l'esecuzione con la versione errata.

Il metodo utilizzato dal pacchetto Chrome funziona bene nella maggior parte dei casi, ma è ancora un trucco sporco e ha un limite. Se il libudev0pacchetto viene disinstallato dopo l'installazione di Chrome, che è probabile che accada quando si aggiorna Ubuntu, Chrome verrà comunque impostato per l'uso libudev.so.0ma il file non sarà più disponibile. Per risolvere il problema, eseguire nuovamente lo script di installazione e questa volta rilevare che libudev.so.0non è disponibile, quindi è necessario creare il collegamento simbolico da utilizzare libudev.so.1. È possibile rieseguire lo script di installazione eseguendolo dpkg-reconfigure google-chrome-stablecome root.


36

Come ha sottolineato Gilles, questo approccio può portare a comportamenti indesiderati. Prova prima la sua soluzione . Se non funziona per te e capisci le implicazioni che ciò potrebbe portare alla corruzione silenziosa dei dati , puoi fare quanto segue:

Supponendo un sistema a 64 bit, il collegamento simbolico mancante può essere creato tramite:

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

Per Ubuntu 18:

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

Per un sistema a 32 bit:

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

Potrebbe essere necessario controllare la versione locale di libudev.


1
Questa risposta si applica anche a problemi come "Google Chrome non si avvia dopo l'aggiornamento alla 13.10".
Sri

Questo funziona anche per Dartium (la versione di sviluppo di Chromium con Dart VM incorporato). Anche se ho creato il collegamento con il collegamento libudev.so.1 invece nella speranza che se la versione cambia il collegamento continua a guastarsi, ma non ne sono sicuro. L'unica cosa che posso dire è che ha funzionato per me. Kubuntu 14.10.
user69112

2
Questa è una cattiva idea: funziona per Chrome, ma potrebbe interrompere altri programmi che non provengono da Ubuntu - invece di ricevere un messaggio di errore, potresti ottenere la corruzione silenziosa dei dati.
Gilles 'SO- smetti di essere malvagio'

Questo funziona per me
Sungguk Lim,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.