我无法在 WSL2 上运行的 Kali linux 中切换到 Gnome 桌面环境。我正在使用 kex (kex -s) 启动。已经将 Gnome updatet 安装到最新版本,但它总是在 Xfce 中启动。
尝试了本指南:https ://www.youtube.com/watch?v=pX7RHXRgBLs&ab_channel=500ATC使用https://sourceforge.net/projects/vcxsrv/但是当我从终端开始时,它给了我“出了点问题”错误。
这也不起作用:https ://www.youtube.com/watch?v=SVUDIWKh_w0&ab_channel=TechSolutionZ 。
谢谢。
好吧,自从我与 Kali 或 Kex 合作以来已经有一段时间了,但至少我能够让 Gnome 蹒跚前行。
先说几点:
这个答案建立在我之前的几个 Ask Ubuntu 答案的基础上:
Gnome需要Systemd,而 Systemd 不能很好地配合 WSL(而 WSL 不能很好地配合 Systemd)。
有一些方法可以让它工作(正如我将演示的那样),但我不建议在 WSL 上运行 Systemd,除非你真的了解正在发生的事情和/或可以解决它。Systemd 极大地改变了 WSL(甚至您可能在 WSL 下运行的其他发行版)的行为。就在今天,我遇到了另一个问题,即 Systemd 脚本(类似于我将要向您展示的内容)正在产生问题。
在 Kali 上的 WSL 下运行 Gnome 并不一定比在 WSL 下的 Ubuntu 下运行它更难。由于它的 Systemd 要求,它需要在两者上进行大量工作。也就是说,Kali 是一个更高级的发行版,因此您经常会在 Ubuntu 上找到更多的手把手。值得一读Kali 上的 Meta Unix 帖子。
需要明确的是,Kali 是一个很棒的发行版,我非常尊重它。另外,我很欣赏他们的 Kex 实施比 WSLg/Windows 11 支持早几年的事实。然而,那些运行它的人需要清楚的是,与许多其他发行版相比,使用 Kali 可以自己解决更多问题。
好的,不碍事。以下是我使用 Kali 在 WSLg/Windows 11 上运行 Gnome 的方法:
正如我在上面链接的其他一些答案中解释的那样,这会在单独的命名空间中启动 Systemd。您需要等待几秒钟才能启动。检查
ps -efH
——一旦udev
进程开始消失,你应该很好地继续:您现在位于该名称空间中,并且使用另一个名称空间,
ps -efH
您可以看到 Systemd 作为 PID1 运行,它必须这样才能正常运行。然而,坏消息是 Kali(和大多数其他发行版)的一些默认 Systemd 初始化现在已经覆盖了 WSLg 集成点,因此我们需要手动重新创建它们:
这将启动 Gnome 可以运行的后台全屏 Xwayland 服务器。否则,它将与已经运行的 Weston 窗口管理器发生冲突(再次,如其他链接答案之一所述)。
点击Enter你的 WSL/Kali shell 以再次获得提示。然后:
Gnome 现在应该在 Xwayland 下运行。可能有一些方法可以直接在 Wayland 或 Weston 下运行它,但我还没有弄清楚如何去做。
请注意,在 Gnome 中仍有很多事情会不规律地工作,因为它需要物理机或虚拟机。
完成后,请确保将
wsl --shutdown
所有内容返回到“非 Systemd”状态。正如我在其他答案中所提到的,WSL 上有 Systemd 的帮助脚本,但我建议仅在必要时使用该路径。
对于 Gnome,我的建议是在虚拟机中运行,而不是直接在 WSL 中运行。具有讽刺意味的是,您甚至可以在 WSL2 中运行该虚拟机(通过 libvirtd)。但这是一个单独的话题......