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