Showing posts with label WSL. Show all posts
Showing posts with label WSL. Show all posts

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