Как исправить отсутствующий libudev.so.0 для Chrome, чтобы начать снова?

27

Попытка запустить Chrome приводит к следующей ошибке в командной строке:

/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.

k0pernikus
источник

Ответы:

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.

k0pernikus
источник
1
Этот ответ также относится к вопросу типа «Google Chrome не запускается после обновления до 13.10».
Шри
Это также работает для Dartium (версия для разработки Chromium со встроенной Dart VM). Хотя я создал ссылку против ссылки libudev.so.1 вместо этого в надежде, что, если версия изменится, ссылка все равно заработает, но я не уверен в этом. Единственное, что я могу сказать, это то, что это сработало для меня. Кубунту 14.10.
user69112
2
Это плохая идея: это работает для Chrome, но может сломать другие программы, которые не приходят из Ubuntu - вместо сообщения об ошибке вы можете получить молчаливое повреждение данных.
Жиль "ТАК - перестать быть злым"
Это работает для меня
Sungguk Lim