我正在尝试在 Windows Subsystem for Linux 下的 Ubuntu 20.04 中运行 Atom 编辑器。
我安装了 Ubuntu,然后安装了 Node.js。两者似乎都运行良好。然后我按照本网站用于安装 Atom。
当我运行时atom
,我得到以下信息:
ro@PC:~$ atom
expr: syntax error: missing argument after ‘8’
ro@PC:~$ /usr/bin/atom: line 195: 89 Segmentation fault nohup "$ATOM_PATH" --executed-from="$(pwd)" --pid=$$ "$@" > "$ATOM_HOME/nohup.out" 2>&1
这是我的文件夹中的内容~/.atom
:
ro@PC:~/.atom$ ll
total 8
drwxr-xr-x 2 ro ro 4096 Apr 25 09:52 ./
drwxr-xr-x 9 ro ro 4096 Apr 25 09:52 ../
-rw-r--r-- 1 ro ro 0 Apr 25 11:52 nohup.out
由于我是 Linux 新手,我不知道我做错了什么。
答案1
通过在自己的 WSL 系统上安装和运行 Atom,我可以确认您遇到了两个问题。第一个问题相当常见,但 Atom 错误消息与其他应用程序截然不同,我很高兴您发布了它,以便其他人在搜索时可以找到它。
/usr/bin/atom: line 195: 89 Segmentation fault nohup "$ATOM_PATH" --executed-from="$(pwd)" --pid=$$ "$@" > "$ATOM_HOME/nohup.out" 2>&1
该错误是由您的第一个问题引起的。正如评论中提到的,您在没有 X 服务器的 Windows 10 上运行 WSL。
Windows 10 上的 WSL 本身不支持 Linux GUI 应用程序。Linux GUI 应用程序(传统上)是 X 客户端,它们使用 X11 协议与“X 服务器”通信,后者负责显示它们、翻译输入(鼠标、键盘等)以及其他任务。
在 Windows 10 上,WSL 不(直接)支持该功能。实际上有三种可能的解决方案,虽然我将在这里总结它们,但我会向您指出其他几个问题以获取详细信息:
升级到 Windows 11,其中有一个新功能 WSLg,它直接支持使用 X11 和 Wayland(X11 的“后继者”)的 GUI 应用程序。
在 Windows 10 上运行第三方 X 服务器,例如 VcXsrv
在 Ubuntu 中运行
xrdp
并通过 Windows 中的远程桌面应用程序连接到它。
看:
- 如何使用 Windows Subsystem for Linux 运行 GUI 应用程序(超级用户)
- 在适用于 Linux 的 Windows 子系统上运行 GUI 应用程序的最简单方法是什么?在 Ask Ubuntu 上,但请注意,作为一个较老的问题,一些较旧的答案仅适用于 WSL1。
- WSL 2:从 Windows 10 Bash Shell 运行图形 Linux 桌面应用程序“错误 E233:无法打开显示”在 Stack Overflow 上,但要意识到作为一个封闭的、离题的问题,它可能会随着时间的推移变得更加过时,因为没有新的答案可以发布。
有关选项的(确实过于)冗长而详细的比较(性能、内存、安装简便性、易用性),请参阅我的答案。
另一个错误
expr: syntax error: missing argument after ‘8’
即使安装了 X 服务器,您暂时仍会收到此错误消息。这是Atom 中的错误。看起来,这没什么危害,即使出现该错误消息,Atom 仍可正常运行。出现这种情况是因为 Atom 没有预料到您可能没有运行会话管理器,而 WSL 下您不需要它。
但是,如果你通过 Xrdp 运行,则不会收到该错误,因为你将要在会话管理器下运行。
无论如何,无需担心,据报道它将在下一个版本中得到修复。