我一直在 Pi4、Ubuntu 22.04 服务器和 Gnome 桌面上运行 Electron 应用程序,没有出现任何问题。由于它无论如何都作为一个单独的应用程序作为信息亭运行,因此我一直在尝试消除 Gnome 并仅从 CLI 启动(安装了 X)。然而,我得到:
ERROR:ozone_platform_x11.cc(247) Missing X server or $DISPLAY
The platform failed to initialize. Exiting.
我已经阅读过有关设置“DISPLAY=$HOST_IP:10.0”的信息,但是我不清楚在哪里设置,或者是否适用于这种情况。我对这部分还很陌生,所以任何帮助将不胜感激!
显示在 xclient 端设置为 环境变量,因此它知道将输出发送到 xserver 的何处。例如,如果我在 192.168.0.5 的 Windows 机器上运行 xserver,则在客户端上执行以下操作:
$ export DISPLAY=192.168.0.5:0.0
这将告诉 xclient 将输出发送到显示零上的该 url。您可以拥有多个显示器,但对于本示例,我们将保持简单。
如果您的 xclient 是 Windows 上通过 WSL2 的 Ubunto,您只需将此行放入 Ubunto ~/.bash 文件中,它就会自动找出正确的显示值:
# enable the display for XWindows
export DISPLAY=$(cat /etc/resolv.conf | grep nameserver | awk '{print $2; exit;}'):0.0
要验证您的显示器是否已设置,请执行以下操作:
$ echo $DISPLAY
172.26.112.1:0.0
<-- just an example url, probably not yours
在 Raspberry PI 4 上,我做了:
$ export DISPLAY=$(cat /etc/resolv.conf | grep nameserver | awk '{print $2; exit;}'):0.0
最终结果是:
$ echo $DISPLAY
192.168.0.1:0.0
但仍然是同样的问题 - 缺少 X 服务器
我的最终解决方案:
$ export DISPLAY=:0
然后工作得很好!