问题描述
在命令行上尝试启动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后,它仍然存在。
最佳方法
如果从Ubuntu≤12.10升级到≥13.04后Chrome无法启动,请打开终端并运行以下命令:
sudo dpkg-reconfigure google-chrome-stable
解释如下。
至少对于从28到37的Chrome版本,Chrome二进制文件可以使用系统上存在的libudev.so.0
或libudev.so.1
中的任何一个。有了Chromium/Chrome Issue 226002的修复程序(于2013年4月进入不稳定通道),安装程序将确定要使用哪个修复程序。二进制引用libudev.so.0
;如果未找到libudev.so.0
,则安装程序将创建从/opt/google/chrome/libudev.so.0
到系统上libudev.so.1
的符号链接。
请注意,在/usr/lib
中创建一个不是一个好主意。当较新版本不兼容时,库中的主要版本号将更改。创建此符号链接对于Chrome来说效果很好,因为它仅使用版本0和版本1之间兼容的功能。如果您强迫其他应用程序使用错误的版本运行,则其他应用程序可能会崩溃或产生损坏的数据。
Chrome程序包使用的方法在大多数情况下都可以很好地工作,但是仍然是一个肮脏的技巧,并且存在局限性。如果在安装Chrome后卸载了libudev0
软件包(升级Ubuntu时很可能会发生这种情况),那么Chrome仍将设置为使用libudev.so.0
,但该文件将不再可用。要解决此问题,请使安装脚本再次运行,并且这一次检测到libudev.so.0
不可用,因此应创建符号链接以改为使用libudev.so.1
。您可以通过以根用户身份运行dpkg-reconfigure google-chrome-stable
来re-run安装脚本。
次佳方法
正如Gilles指出的那样,这种方法可能导致不必要的行为。请尝试his solution first。如果它对您不起作用,并且您理解这可能导致无提示数据损坏的含义,则可以执行以下操作:
假设是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的本地版本。