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

Попытка запустить 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.

27
задан 1 November 2013 в 05:58

2 ответа

Если 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.

0
ответ дан 1 November 2013 в 05:58

Как отметил Жиль, такой подход может привести к нежелательному поведению. Пожалуйста, попробуйте сначала его решение . Если это не работает для вас, и вы понимаете, что это может привести к повреждению данных без вывода сообщений , вы можете сделать следующее:

Предполагая, что в 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.

0
ответ дан 1 November 2013 в 05:58
  • 1
    Учитывая путь был поставлен вопрос, я не вижу осведомленности для проблем, которые пробелы могли бы принести при реализации этого со сценариями оболочки. Поэтому я предполагаю, что OP просто дал минимальный пример, который не содержит пробелы для простоты, не потому что он уверен, что никогда не будут пробелы. Я был записан с программным обеспечением, не справляющимся с пробелами достаточно часто сам, таким образом, я стараюсь изо всех сил заставлять новое программное обеспечение справиться с пробелами хорошо. – Martin Ueding 3 May 2015 в 12:03

Другие вопросы по тегам:

Похожие вопросы: