无法再以普通用户身份启动 Chrom{ium|e}

无法再以普通用户身份启动 Chrom{ium|e}

我无法再以普通用户身份运行 Chromium 或 Chrome(尽管我可以以 root 身份运行)。我尝试过重新启动、重新安装两个应用程序、移动 .config 文件、更改 gtk 主题以及以不同(=新)用户身份运行。这些都没有任何区别(即两者仍然拒绝运行)。它们不仅拒绝运行,而且不会产生任何错误消息,也不会超时(即使从命令行运行)。

这里strace是运行with的输出Chromium

我找不到任何明显标记为错误的内容,尽管有一些“丢失文件/目录”消息,如下所示:

  open("tls/x86_64/libdbus-1.so.3", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory

我现在真的很困惑,不知道还能尝试什么。

[我在 Arch Linux 下运行,以防有什么影响。]

编辑:这里是进行比较的输出nohup sudo strace sudo chromium -user-data-dir=/tmp (运行它实际上最终导致 Chromium 打开并正常运行。)

答案1

解释

请注意,您的问题与 Chromium 无关,因为此问题可能不仅仅影响 Chromium。您的系统丢失了某些已安装动态库的位置,或者您可能已安装/更新了它们,但更新未正确完成。root仍然可以运行该应用程序这一事实验证了这一点

验证或重新安装丢失的库

执行这些步骤将验证忘记的库是否已重新安装或已安装。在某些情况下,pacman可能会触发下面的步骤4,这正是我们想要的。

  1. 请使用以下命令安装 pkgfile:
    pacman -S pkgfile
  2. 发出以下命令:
    pkgfile filename其中 filename 是丢失文件的名称。例子:
    pkgfile libdbus-1.so.3应该返回libdbus或者tls

请注意,这是 AUR 包,但二进制文件可能已经存在。

  1. 现在发出一个:
    pacman -S libdbus tls

测试

现在尝试从终端重新启动 Chrome/Chromium。如果转储有关丢失文件的错误,请重新发出验证部分中步骤 2 中的命令,替换文件名与新的丢失文件。最后:

  1. 更新您的动态链接器库缓存通过发出:
    ldconfig

上面的步骤 4 会重建缓存,您的用户在尝试启动您启动的应用程序之前正在其中搜索。我们这样做是为了防止pacman安装丢失/重新安装的软件包不会自动触发它。


附加参考

在 Arch Linux 中,我如何找到要安装的包含文件 X 的软件包?

相关内容