如何修复缺少的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后它仍然存在。
如果在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
,安装程序会在libudev.so.1
上创建一个符号链接到系统上的libudev.so.0
。
请注意,在/usr/lib
创建一个是一个坏主意。 当较新版本不兼容时,库中的主要版本号会更改。 创建此符号链接适用于Chrome,因为它仅使用版本0和版本1之间兼容的function。如果强制它们以错误的版本运行,其他应用程序可能会崩溃或生成损坏的数据。
Chrome软件包使用的方法在大多数情况下运行良好,但它仍然是一个肮脏的黑客,它有一个限制。 如果在安装Chrome后卸载了libudev0
软件包,这在升级Ubuntu时可能会发生,那么Chrome仍将设置为使用libudev.so.0
但该文件将不再可用。 要解决此问题,请使安装脚本再次运行,这次检测到libudev.so.0
不可用,因此应创建符号链接以使用libudev.so.1
。 您可以通过以root身份运行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。