在 WSL 下运行 Synaptic

在 WSL 下运行 Synaptic

我在 Windows 11 上的 WSL 上运行 Ubuntu 20.04 LTS。我安装了 synaptic 包管理器并尝试通过它运行它sudo synaptic,但它给了我以下结果:

Unable to init server: Could not connect: Connection refused
Failed to initialize GTK.

Probably you're running Synaptic on Wayland with root permission.
Please restart your session without Wayland, or run Synaptic without root permission

如何在 WSL 下的 Ubuntu 中使用 sudo 运行 Synaptic?

答案1

如果xhost +si:localuser:root synaptic不起作用,您可能应该使用韓國会话,因为 Wayland 不允许 GUI 应用程序在超级用户模式下运行。看看这个Unix 和 Linux 答案

答案2

最初,当我尝试重现时,我收到的消息几乎相同,而就我而言,这是由于我在 WSL 下对 Systemd 进行了一些实验。有趣的是,Systemd 工作在完全不同的 WSL 实例中,但它破坏了 WSLg X11 套接字。

因此,Synaptic 尝试使用 Wayland 套接字运行。

您是否正在使用任何 Systemd 脚本,例如 Genie 或 WSL2Hacks?如果是,请尝试不使用它们。删除 Systemd 脚本,退出 Ubuntu,发出wsl --shutdown,然后重新启动。

另请检查:

  • 您能运行其他 X11 应用程序吗?尝试:

    sudo apt install xterm
    xterm
    

    那样有用吗?

  • echo $DISPLAY-- 带有 WSLg 的 WSL2 应该自动将其设置为:0

  • ls -lah /tmp--.X11-unix -> /mnt/wslg/.X11-unix那里存在吗?如果它不指向/mnt/wslg/.X11-unix,那么您的 X11 套接字仍未修复。 systemd-tmpfiles会覆盖它,但可能还有其他原因。

相关内容