想在 Windows 開啟 Ubuntu 的圖形程式,可以使用 WSL2 搭配 WSLg。程式會以視窗出現在 Windows 桌面上,不必先照舊教學另外架設一套 X Server。
不過,執行 Linux 圖形程式和啟動完整 Ubuntu 桌面是不同需求。WSLg 主要提供應用程式的視窗整合,微軟也明確說明,它不提供完整桌面體驗。若目標是練習完整桌面環境、登入管理或整台 Linux 系統,虛擬機可能更符合需求。微軟 GUI 文件(在新分頁開啟)
先確認 Windows 與 WSL 版本
依微軟文件,WSLg 的條件包含 Windows 10 組建 19044 以上或 Windows 11,且 Linux 發行版必須使用 WSL2。符合一般 WSL 安裝條件,不代表一定已符合 GUI 的條件。
在 Windows 按 Win+R,輸入 winver 查看版本。接著在 PowerShell 檢查:
wsl --statuswsl --versionwsl --list --verbose--list --verbose 會列出已安裝的發行版與 WSL 版本。若已有 Ubuntu,先看它的 VERSION 欄位是不是 2。
舊版內建 WSL 可能不支援某些新指令參數;若 wsl --version 無法使用,先依官方安裝與更新文件(在新分頁開啟)更新,再繼續後面的檢查。
第一次安裝:在 Windows 執行安裝指令
尚未安裝 WSL 與 Ubuntu 時,用系統管理員身分開啟 PowerShell:
wsl --install -d Ubuntu依提示重新啟動電腦,再開啟 Ubuntu,完成 Linux 使用者名稱與密碼設定。這是 Ubuntu 裡使用的帳號,不必與 Windows 帳號相同;輸入密碼時沒有顯示字元是正常行為。
如果這個名稱的發行版已經存在,不要重複安裝。先用發行版清單確認它的名稱與狀態,再啟動既有環境。
安裝失敗時,先閱讀錯誤訊息。若訊息與虛擬化或必要元件有關,應先處理 Windows 的虛擬化設定,不要在 Ubuntu 裡反覆安裝 GUI 套件。
已有 WSL:先更新,不必全部重裝
在系統管理員 PowerShell 執行:
wsl --update更新後如果需要重新啟動 WSL,先儲存 Linux 程式的工作,再執行:
wsl --shutdown這會停止所有執行中的 WSL 發行版,不只目前的 Ubuntu;依賴 WSL 的其他工具也可能受到影響。完成後重新開啟 Ubuntu。
如果發行版仍是 WSL1,可以依實際名稱轉換。下面的 Ubuntu 必須換成 wsl --list --verbose 顯示的名稱:
wsl --set-version Ubuntu 2轉換前先備份發行版內的重要檔案,並預留時間與磁碟空間。完成後再列一次清單,確認 VERSION 已變成 2。站內另有較早的 WSL1 轉 WSL2 筆記,操作時請以目前的官方文件與實際版本為準。
分清楚 PowerShell 和 Ubuntu 終端機
接下來安裝 Linux 套件,使用的是 Ubuntu 終端機。可以從開始功能表開啟 Ubuntu,或在 PowerShell 執行:
wsl -d Ubuntu仍要把名稱換成自己的發行版名稱。進入後通常會看到 Linux 的提示符號,這時才執行 sudo apt 等指令。
| 指令 | 執行位置 |
|---|---|
wsl --update、wsl --list --verbose | Windows PowerShell |
sudo apt update、xeyes | Ubuntu 終端機 |
exit | 在 Ubuntu 中離開這次終端機工作階段 |
如果在 PowerShell 收到找不到 sudo 或 apt 的訊息,先確認自己是不是還沒進入 Ubuntu。
先用一個小程式測試視窗
在 Ubuntu 終端機執行:
sudo apt updatesudo apt install x11-appsxeyes預期會出現一個眼睛跟著游標移動的小視窗。它適合用來檢查基本視窗顯示;測試成功後,再安裝真正需要的程式。
終端機在程式執行期間可能不會立刻回到提示符號。關閉視窗後再執行下一個指令即可,不必因為終端機暫時沒有提示符號就重新安裝。
接著可以試一個文字編輯器:
sudo apt install gnome-text-editorgnome-text-editor上面的測試套件與安裝方式,微軟也有列在 Linux GUI 應用程式教學(在新分頁開啟)。不同 Ubuntu 版本提供的套件或相依關係可能不同,若 apt 顯示套件不存在,先核對發行版與套件來源。
圖形程式開不起來時,先找出卡在哪一層
WSL2 還是程式本身?
先回到 PowerShell 確認發行版使用 WSL2,再確認 wsl --update 是否完成。若 xeyes 可以開,但只有某一個大型程式不能開,優先檢查該程式的錯誤與相依套件,不必把整個 WSL 砍掉重裝。
需要 GPU 加速的程式,也要檢查 Windows 端顯示卡驅動。WSLg 的基本視窗顯示成功,不代表所有 OpenGL 或 GPU 工作負載都已正常。
舊教學留下的 DISPLAY 設定
在 Ubuntu 檢查目前環境:
printenv DISPLAYprintenv WAYLAND_DISPLAYls /mnt/wslg如果以前用過外部 X Server 教學,可能曾在 ~/.bashrc 或 ~/.profile 寫入固定的 DISPLAY。WSLg 有自己的環境設定,舊設定可能把連線導向另一個位置。
先記錄原本內容,再檢查並註解不再需要的手動設定;不要盲目把別台電腦的 IP 位址貼進去。修改後重新開啟終端機測試,必要時儲存工作並重啟 WSL。
遇到 cannot open display 等訊息,可依WSLg 官方排錯指南(在新分頁開啟)逐項檢查。
檔案位置也要記下來
Linux 的家目錄和 Windows 的使用者資料夾不是同一個路徑。看到 /home/使用者名稱,不代表檔案自動存進 Windows 的「文件」。
練習時可先建立專用目錄:
mkdir -p ~/gui-practicecd ~/gui-practicepwdpwd 會印出目前位置。之後用圖形編輯器儲存測試檔案,再確認它是否出現在預期目錄,避免把「視窗成功開啟」和「資料已存到對的位置」混在一起。
舊版影片與延伸資料
原筆記收錄的 Windows 10 Bash & Linux Subsystem Setup(在新分頁開啟) 是較早的環境示範。安裝介面與 GUI 連線方式可能和本文不同,不要把兩套步驟混著設定。
以下保留原筆記的延伸連結作為歷史參考,現行 WSLg 設定以上面的微軟文件為準:
