Як виправити відсутні файли libudev.so.0, щоб Chrome запустився знову?


27

Спроба запустити хром дає наступні помилки в командному рядку:

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

Помилка вперше з’явилася в Ubuntu 13.04, я спробував очистити та перевстановити Chrome. Він зберігався після оновлення до Ubuntu 13.10.

Відповіді:


17

Якщо Chrome не запускається після оновлення Ubuntu з ≤12.10 до ≥13.04, відкрийте термінал і запустіть таку команду:

sudo dpkg-reconfigure google-chrome-stable

Наступні пояснення.


Принаймні для версій Chrome від 28 до 37, двійковий файл Chrome може використовувати залежно від того, libudev.so.0чи libudev.so.1є в системі. Із виправленням Chromium / Chrome Issue 226002 (який перейшов у нестабільний канал у квітні 2013 року), інсталятор визначає, який саме використовувати. Бінарні посилання libudev.so.0; інсталятор створює символічне посилання /opt/google/chrome/libudev.so.0на libudev.so.1на систему , якщо libudev.so.0НЕ буде знайдений.

Зауважте, що було б поганою ідеєю створити його /usr/lib. Основні номери версій у бібліотеках змінюються, коли новіша версія не сумісна. Створення цього символічного посилання добре працює для Chrome, оскільки воно використовує лише функції, сумісні між версією 0 та версією 1. Інші програми можуть вийти з ладу або створити пошкоджені дані, якщо змусити їх працювати з неправильною версією.

Метод, який використовується пакетом Chrome, добре працює в більшості обставин, але це все-таки брудний злом, і він має обмеження. Якщо libudev0пакет буде видалено після встановлення Chrome, що, швидше за все, станеться при оновленні Ubuntu, Chrome все одно буде налаштований на використання, libudev.so.0але файл більше не буде доступний. Щоб виправити це, примусьте знову запустити інсталяційний скрипт, і цього разу виявіть, що libudev.so.0він недоступний, тому він повинен створити символічне посилання для використання libudev.so.1. Ви можете запустити інсталяційний скрипт, запустивши dpkg-reconfigure google-chrome-stableяк root.


36

Як зазначав Жилл, такий підхід може призвести до небажаної поведінки. Спробуйте спочатку його рішення . Якщо це не працює для вас, і ви розумієте, що це може призвести до беззвучної корупції даних , ви можете зробити наступне:

Припускаючи 64-бітну систему, відсутня символьна посилання може бути створена за допомогою:

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

Для Ubuntu 18:

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

Для 32-бітної системи:

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

Можливо, вам доведеться перевірити локальну версію libudev.


1
Ця відповідь також стосується питання типу "Google Chrome не запускається після оновлення до 13.10".
Шрі

Це також працює для Dartium (версія для розробки Chromium із вбудованим Dart VM). Хоча я створив посилання проти посилання libudev.so.1 замість цього, сподіваючись, що якщо версія змінить, посилання все-таки почне все-таки вроджуватися, але я не впевнений у цьому. Єдине, що я можу сказати - це працювало на мене. Кубунту 14.10.
користувач69112

2
Це погана ідея: вона працює для Chrome, але вона може зламати інші програми, які не надходять від Ubuntu - замість того, щоб отримати повідомлення про помилку, ви можете отримати мовчазне пошкодження даних.
Жил 'ТАК - перестань бути злим'

Це працює для мене
Sungguk Lim
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.