如何修复缺少的 libudev.so.0 以使 Chrome 重新启动?

如何修复缺少的 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 后,该问题仍然存在。

答案1

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 版本。

答案2

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

sudo dpkg-reconfigure google-chrome-stable

解释如下。


至少对于 Chrome 版本 28 到 37,Chrome 二进制文件可以使用系统中存在的任何libudev.so.0libudev.so.1。修复Chromium/Chrome 问题 226002(于 2013 年 4 月进入不稳定频道),安装程序将确定使用哪一个。二进制文件引用;如果未找到,libudev.so.0安装程序将在系统上创建一个从/opt/google/chrome/libudev.so.0到 的符号链接。libudev.so.1libudev.so.0

请注意,在 中创建一个符号链接不是一个好主意/usr/lib。当新版本不兼容时,库中的主版本号会发生变化。创建此符号链接对 Chrome 非常有效,因为它仅使用版本 0 和版本 1 之间兼容的功能。如果您强制其他应用程序使用错误的版本运行,它们可能会崩溃或产生损坏的数据。

Chrome 软件包使用的方法在大多数情况下都很好用,但它仍然是一个肮脏的黑客行为,并且有局限性。如果libudev0在安装 Chrome 后卸载软件包(这很可能在您升级 Ubuntu 时发生),则仍会设置 Chrome 以供使用,libudev.so.0但该文件将不再可用。要解决此问题,请再次运行安装脚本,这次检测到libudev.so.0不可用,因此它应该创建要使用的符号链接libudev.so.1。您可以通过以 root 身份运行来重新运行安装脚本dpkg-reconfigure google-chrome-stable

相关内容