如何修复丢失的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后,它仍然存在。

Answers:


17

如果Ubuntu从≤12.10升级到≥13.04后Chrome无法启动,请打开终端并运行以下命令:

sudo dpkg-reconfigure google-chrome-stable

解释如下。


至少对于从28到37的Chrome版本,Chrome二进制文件可以使用系统上的任何版本libudev.so.0libudev.so.1存在的版本。借助Chromium / Chrome问题226002(于2013年4月进入不稳定通道)的修复程序,安装程序可以确定要使用哪个版本。二进制引用libudev.so.0; 安装程序会创建从符号链接/opt/google/chrome/libudev.so.0libudev.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

正如Gilles指出的那样,这种方法可能导致不必要的行为。请先尝试他的解决方案。如果它对您不起作用,并且您理解这可能导致无提示数据损坏的含义,可以执行以下操作:

假设是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
此答案也适用于“升级至13.10后无法启动Google Chrome浏览器”之类的问题。
斯里兰卡

这也适用于Dartium(嵌入了Dart VM的Chromium的开发版本)。尽管我是针对链接libudev.so.1创建的链接,但希望如果版本更改,该链接仍会出错,但是我不确定。我唯一能说的是它对我有用。库本图14.10。
user69112 2014年

2
这是一个坏主意:它适用于Chrome,但它可能破坏其他不是来自Ubuntu的程序-而不是显示错误消息,您可能会得到无声的数据损坏。
吉尔(Gilles)'所以

这对我
有用
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.