Wie behebe ich fehlende libudev.so.0, damit Chrome erneut gestartet wird?

27

Der Versuch, Chrome zu starten, führt zu folgendem Fehler in der Befehlszeile:

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

Der Fehler trat zum ersten Mal in Ubuntu 13.04 auf. Ich habe versucht, Chrome zu bereinigen und neu zu installieren. Nach dem Upgrade auf Ubuntu 13.10 blieb es bestehen.

k0pernikus
quelle

Antworten:

17

Wenn Chrome nach einem Ubuntu-Upgrade von ≤12.10 auf ≥13.04 nicht startet, öffnen Sie ein Terminal und führen Sie den folgenden Befehl aus:

sudo dpkg-reconfigure google-chrome-stable

Erklärungen folgen.


Zumindest für die Chrome-Versionen 28 bis 37 kann die Chrome-Binärdatei die auf dem System vorhandene libudev.so.0oder libudev.so.1vorhandene Version verwenden. Mit dem Fix für Chromium / Chrome Issue 226002 (das im April 2013 in den instabilen Channel ging) bestimmt das Installationsprogramm, welches verwendet werden soll. Die binären Referenzen libudev.so.0; Das Installationsprogramm erstellt eine symbolische Verknüpfung von /opt/google/chrome/libudev.so.0zu libudev.so.1auf dem System, wenn sie libudev.so.0nicht gefunden wird.

Beachten Sie, dass es eine schlechte Idee wäre, eine in zu erstellen /usr/lib. Die Hauptversionsnummern in Bibliotheken ändern sich, wenn die neuere Version nicht kompatibel ist. Das Erstellen dieses symbolischen Links funktioniert in Chrome gut, da nur Funktionen verwendet werden, die zwischen Version 0 und Version 1 kompatibel sind. Andere Anwendungen können abstürzen oder beschädigte Daten erzeugen, wenn Sie die Ausführung mit der falschen Version erzwingen.

Die vom Chrome-Paket verwendete Methode funktioniert unter den meisten Umständen gut, ist jedoch immer noch ein unsauberer Hack und hat eine Einschränkung. Wenn das libudev0Paket nach der Installation von Chrome deinstalliert wird, was wahrscheinlich beim Upgrade von Ubuntu der Fall ist, wird Chrome weiterhin für die Verwendung eingerichtet libudev.so.0, die Datei ist jedoch nicht mehr verfügbar. Um dies zu beheben, führen Sie das Installationsskript erneut aus, und stellen Sie diesmal fest, dass libudev.so.0es nicht verfügbar ist. Daher sollte der zu verwendende symbolische Link erstellt libudev.so.1werden. Sie können das Installationsskript erneut ausführen, indem Sie es dpkg-reconfigure google-chrome-stableals root ausführen .

Gilles 'SO - hör auf böse zu sein'
quelle
36

Wie Gilles betonte, kann dieser Ansatz zu unerwünschtem Verhalten führen. Bitte versuchen Sie zuerst seine Lösung . Wenn es bei Ihnen nicht funktioniert und Sie die Implikation verstehen, dass dies zu einer unbeaufsichtigten Datenbeschädigung führen kann, können Sie Folgendes tun:

Unter der Annahme eines 64-Bit-Systems kann der fehlende Symlink folgendermaßen erstellt werden:

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

Für Ubuntu 18:

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

Für ein 32-Bit-System:

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

Möglicherweise müssen Sie Ihre lokale Version von libudev überprüfen.

k0pernikus
quelle
1
Diese Antwort gilt auch für das Problem "Google Chrome wird nach dem Upgrade auf 13.10 nicht gestartet."
Sri
Dies funktioniert auch für Dartium (die Entwicklungsversion von Chromium mit Dart VM Embedded). Ich habe den Link zwar gegen den Link libudev.so.1 erstellt, in der Hoffnung, dass, wenn die Version wechselt, der Link trotzdem funktioniert, bin mir aber nicht sicher. Das Einzige, was ich sagen kann, ist, dass es bei mir funktioniert hat. Kubuntu 14.10.
User69112
2
Dies ist eine schlechte Idee: Sie funktioniert für Chrome, kann jedoch andere Programme, die nicht von Ubuntu stammen, zum Absturz bringen. Statt einer Fehlermeldung kann es zu einer unbeaufsichtigten Datenbeschädigung kommen.
Gilles 'SO- hör auf böse zu sein'
Dies funktioniert für mich
Sungguk Lim