Sunday, April 4, 2021

安裝 WSL2 GUI

引言
Ubuntu 近年經過不斷的改良,已經十分好用。不過,由於 Linux 始終缺乏許多常用的辦公軟件(例如 Office、IxChariot、Zoom 等等),要把它當成取代 Windows 的日常作業系統,的確有點困難。就算 Linux 上可以用 Wine 去執行 Win32 API,反向支援 Windows Apps,但結果總是強差人意。不過,由於 Windows 實在缺少了很多 POSIX-compliant API、shell 支援、以及 automake 等開發工具,所以,用它來做日常開發,又總是令人覺得綁手綁腳。

有見及此,Microsoft 在 2019 年決定推出 Windows Subsystem for Linux (WSL)。這個輕量版的 Translation Layer(註:WSL2 為 Hyper-V VM),既能提供接近原生 Linux 系統的效能,又能幫助用家繼續沿用 Windows 作為主要 OS。不過唯一缺點是,Microsoft 直至 2021 年 4 月,仍然未推出對 WSL 的官方 GUI 支援。 

這次實作,我們決定自行用 VcXsrv 加上輕量版的 Xfce 介面,使 Windows Host 也能輸出 Ubuntu 的 GUI。事實上,整個安裝過程,也只是涉及數行 commands,難度並不高,特別適合 Linux 新手操作。

---

安裝步驟
假設你已經成功安裝 WSL2 (Ubuntu 20.04),你只需在 WSL2 的 Terminal 中進行以下步驟:

1. 執行以下命令,安裝 xfce4 介面及 GNOME 圖示:

sudo apt update
sudo apt upgrade
sudo apt install tasksel
sudo taskel install xubuntu-desktop
sudo apt install gtk2-engines
sudo apt install gnome-icon-theme-full

2. 在 ~/.bashrc 的最尾,加上以下內容:

export DISPLAY=$(cat /etc/resolv.conf | grep nameserver | awk '{print $2; exit;}'):0.0
export LIBGL_ALWAYS_INDIRECT=1

3. 在 Windows Host 中安裝 VcXsrv https://sourceforge.net/projects/vcxsrv,並注意:

  • 安裝最新穩定版  vcxsrv-64.1.20.9.0
  • 安裝過程中,記得將防火牆 Allow

4. 安裝完成後,重新開啟 WSL2 Terminal,並在 Windows 中開啟 XLaunch。
(記得在 Extra Settings 中,需剔選 Disable Access Control)

5. 在 WSL2 Terminal 中安裝 Meld,並測試 Meld GUI 是否能投射到 VcXsrv 中:

sudo apt install meld
meld ./

---

演示圖片


---

小結
使用 WSL2,能在 Windows OS 上,以接近原生的效能,運行 Ubuntu 的 GUI Apps。
本文使用 X Server 及 Display Redirection,以非官方的做法,實現 GUI 的支援。

---

參考:

https://medium.com/@japheth.yates/the-complete-wsl2-gui-setup-2582828f4577


2 comments:

  1. 我都係WSL2裝左xubuntu用xrdp入GUI,不過其實日常生活無乜野要專登開個Linux出黎用,WSL取代Windows又唔方便...

    ReplyDelete