1. 程式人生 > 實用技巧 >WSL2中的Ubuntu上執行GNOME的問題

WSL2中的Ubuntu上執行GNOME的問題

WSL2中的Ubuntu上執行GNOME的問題

WSL2 + Ubuntu 18.04

在Win10上的WSL2中安裝Ubuntu 18.04,在這個Ubuntu中安裝執行gnome沒問題,sudo apt install安裝的gnome版本是3.28.1。

實際操作步驟如下:

一、Win10這一側,用開源的VcXsrv:

vcxsrv.exe -ac -wgl -fullscreen -dpms


二、WSL2中執行如下命令啟動gnome-session並重定向DISPLAY,注意修改DISPLAY中的IP為Win10的IP(不能是127.0.0.1了,因為WSL2是真的虛擬機器了;WSL1是可以用127.0.0.1的)。

也可以把LIBGL_ALWAYS_INDIRECT改為1試試,我記得是改了後不行。

sudo service start dbus
sudo apt install gnome gnome-session
export DISPLAY=192.168.2.73:0.0
export XDG_SESSION_TYPE="x11"
export XDG_RUNTIME_DIR=~/xdg
export XDG_SESSION_CLASS="user"
export XDG_SESSION_DESKTOP=ubuntu
export XDG_CURRENT_DESKTOP=ubuntu:GNOME
export DESKTOP_SESSION
=ubuntu export GDMSESSION=ubuntu export LIBGL_ALWAYS_INDIRECT=0 gnome-session &

WSL2 + Ubuntu 20.04

WSL2中的Ubuntu 20.04不能執行預設版本的gnome,原因是:

sudo apt install預設安裝的gnome版本是高於3.34的,而gnome從3.34版本開始就完全依賴systemd了(參考這裡),WSL2中是沒有systemd的,自然也就執行不了新版的gnome。

但我們可以執行Cinnamon,因為Cinnamon是基於gnome的老版本改的,不依賴於systemd,所以可以執行。如下:

sudo apt install cinnamon-desktop-environment lightdm
export DISPLAY=192.168.2.73:0.0
cinnamon-session &

也可以試試在Ubuntu 20.04上安裝老版本(3.34以下,不包括3.34版本)的gnome看看,我沒試。

XFCE這種輕量級的桌面是可以執行在很多Linux發行版上的,包括上面說的Ubuntu 20.04,我都試過,但介面風格太醜了,不想用。

微軟自家給WSL2中的系統設定的GUI方案是Wayland + RDP,但還是期貨,要再等等了,參看這個帖子