从 WSL 启动 Emacs 时出现警告和错误

从 WSL 启动 Emacs 时出现警告和错误

我有一个 WSL Ubuntu 系统systemd已启用。我还使用 snap 配置snap并安装了它Emacs

当我从 WSL 控制台启动 Emacs 时,我可以看到 GUI 并使用 Emacs。但我收到以下错误和消息。

Emacs 实例似乎功能齐全。因此,我认为错误/警告并不严重。但我想知道我是否可以修复或禁用触发它们的任何功能。

(emacs:587975): dbind-WARNING **: 18:37:34.363: AT-SPI: Error retrieving accessibility bus address: org.freedesktop.DBus.Error.ServiceUnknown: The name org.a11y.Bus was not provided by any .service files

(emacs:587975): GLib-GIO-CRITICAL **: 18:37:34.405: g_settings_schema_source_lookup: assertion 'source != NULL' failed

答案1

简短回答:

sudo apt install gvfs at-spi2-core

更多详情:

错误消息是由于缺少一些 D-bus 服务。通常,这些服务会随桌面环境(Ubuntu Desktop/Gnome、Xfce4 等)一起安装并在桌面环境中启动,但在 WSL 中不会发生这种情况。WSL 的“桌面”实际上是 Windows 本身1。虽然它可能的要在 WSL2 中运行 Linux 桌面(请参阅其他答案),这很不方便,不需要回答您的特定问题。

要修复警告,您可能需要做几件事。首先,“必须”安装缺少的服务。根据警告,Emacs 尝试访问的服务是:

  • GIO:Gnome I/O 框架。这通常是使用 GVFS(Gnome 虚拟文件系统)的应用程序的依赖项,该服务允许最终用户访问用户空间中的某些虚拟文件系统。例如,Ubuntu 中的“垃圾桶”功能使用 GVFS,因此,当您从 GVFS/GIO 应用程序中删除文件时,该文件会被移至垃圾桶,而不是立即永久删除。显然,Emacs 以某种方式使用 GIO 和/或 GVFS(尽管我不知道它是否使用垃圾桶功能)。

  • AT-SPI:辅助技术服务提供商接口。说实话——我不得不自己查一下。它是辅助功能(如屏幕阅读器、盲文、眼动仪等)的接口。如果没有一些更高级的服务(如屏幕阅读器),它可能不会被使用。但老实说,GIO 也是如此——通常它是一些更高级的功能(如 GVFS),用途吉奥。

因此,要解决错误消息:

sudo apt install gvfs at-spi2-core

这将安装 GVFS(将包含 GIO 作为依赖项)和 AT-SPI。

就我个人而言,我看到了其他一些错误,但我认为这些错误是由于我自己的配置问题造成的,尤其是根据您的评论。目前,我正在编辑此答案中的其他错误消息。


脚注

1从技术上讲,它是 Weston,运行使用 Windows 远程桌面客户端查看 Windows 桌面上的应用程序的 RDP/Rails shell。然而,对于大多数用户来说,最终结果只是看起来像 Linux GUI 应用程序在 Windows 桌面上运行。

相关内容