Win11安裝基於WSL2的Ubuntu

charlee44發表於2024-10-24

1. 概述

趁著還沒有完全忘記,詳細記錄一下在Win11下安裝基於WSL2的Ubuntu的詳細過程。不得不說WSL2現在被微軟開發的比較強大了,還是很值得安裝和使用的,筆者就透過WSL2安裝的Ubuntu成功搭建了ROS環境。

2. 詳論

2.1 子系統安裝

在Win11搜尋欄中搜尋“啟用或關閉Windows功能”,在彈出的“Windows功能”對話方塊中,勾選擇 “適用於Linux的Windows子系統”和“虛擬機器平臺”,如下圖1所示:

圖1 啟用適用於Linux的Windows子系統

點選“確定”按鈕,等待Windows更改完成。在選擇“立即重新啟動”,重新進入Win11系統之後,啟動Windows PowerShell。注意,為了避免許可權問題,後續所有啟動Windows PowerShell的方式都可以以管理員身份執行。筆者也不太清楚哪些要管理員許可權,哪些不要,乾脆就統一以管理員身份執行好了。

在Windows PowerShell中輸入如下命令:

wsl --update

之後就會更新wsl,如下圖2所示:

圖2 更新wsl

注意,如果你是用的比較新的Win11版本,那麼應該就會預設安裝到WSL2,所以不用進行切換WSL版本。如果安裝的還是WSL1,那麼就要升級到WSL2,因為WSL1和WSL2的特性是不太一樣的。

接下來透過Microsoft Store安裝Ubuntu發行版,可以直接在Microsoft Store中搜尋Ubuntu,筆者這裡安裝的是Ubuntu 20.04.6 LTS版本,如下圖3所示:

圖3 Microsoft Store安裝Ubuntu

現在Microsoft Store的網路連線應該比較穩定了,下載安裝過程還是比較順利的。安裝完成之後,就可以在系統搜尋欄搜尋到“Ubuntu 20.04.6 LTS”並啟動,如下圖4所示:

圖4 啟動Ubuntu子系統

第一次啟動Ubuntu終端的時候會讓你建立使用者名稱和密碼,按照提示進行設定即可。不過筆者在這一步的時候不小心關閉終端了,後果就是每次啟動Ubuntu終端的賬戶的時候都是root賬戶。

應該來說整個系統的安裝過程還是很順利的,並沒有遇到諸如需要切換版本、下載其它終端、遷移地址等問題。

2.2 資源管理

按照慣例,安裝好Ubuntu第一件事就是更新和升級包管理器,這是安裝依賴庫或者軟體必須。在終端輸入如下指令:

apt-get update  
apt-get upgrade

經過筆者的測試,上述指令現在沒有遇到網路問題了,不知道是不是因為是WSL的原因。如果無法更新的話,有兩種解決方式,一種是設定代理,還有一種是換源,這裡就不多作論述了。

使用WSL的Ubuntu的好處就是方便資源管理,比如前面提到的要給包管理器換源,就要編輯/etc/apt/sources.list這個檔案。但是這時是沒有GUI介面的,只有使用像Vim和nano這樣基於終端的文字編輯器,筆者反正是不太想使用的。但是在WSL下,如果你按照之前的步驟順利安裝完成,就可以直接透過Win11自帶的檔案資源管理器訪問到Ubuntu下所有的檔案,如下圖5所示:

圖5 Win11檔案資源管理器訪問到Ubuntu資源

檔案資源能訪問到當然就可以透過Win11的文字編輯器開啟並編輯(需要注意Windows和Ubuntu文字檔案的換行問題)。不僅是文字檔案,任何檔案資源的複製和移動都很方便,可以實現常規的複製貼上操作。其實檔案資源不複製也行,兩個系統之間的檔案本身就可以互相訪問,當然可能需要解決一些許可權問題。

2.3 GUI介面

2.3.1 WSLg

既然都用上Ubuntu了,當然還是想給它裝上GUI介面。其實目前最新的WSL2已經整合了WSLg技術,也就是可以支援GUI程式,只需要安裝GUI程式,然後執行就可以了。在Ubuntu終端中輸入指令:

xeyes

就可以在Win11系統中看到xeyes應用程式視窗,如下圖6所示:

圖6 Win11系統啟動Ubuntu GUI程式xeyes

如果沒有出現xeyes視窗,那麼可能是Win11版本、WSL版本太低或者GPU驅動的問題,都進行更新一下即可。如果順利出現,就說明可以直接開啟Ubuntu的GUI程式。例如,可以開啟Ubuntu的檔案資源管理器:

thunar

如果提示不識別,就安裝一下:

sudo apt-get update
sudo apt-get install thunar

啟動視窗如下圖7所示:

圖7 Ubuntu檔案資源管理器

應該來說,雙系統資源互通加上這個檔案資源管理器,應該能方便解決很多問題了。

2.3.2 VcXsrv

如果還是想獲得沉浸式的桌面體驗,那麼就需要安裝桌面環境了。不過這種方案不是安裝了包就行了,更類似於遠端桌面連線,需要在Win11端安裝X伺服器VcXsrv,可以在其官方網站上下載。

下載安裝完成後會在桌面上生成一個XLaunch的快捷方式。為了以防外一,還是以管理員方式啟動XLaunch,首先配置展示設定,如下圖8所示:

圖8 VcXsrv配置展示設定

展示配置用於設定Ubuntu桌面以及GUI程式的視窗方式,其實四種方式其實都可以,這裡就以Multiple windows為例。點選下一步,配置如何啟動客戶端,如下圖9所示:

圖9 VcXsrv配置如何啟動客戶端

這裡保持預設配置就行。繼續下一步,進行額外配置,如下圖10所示:

圖10 VcXsrv額外配置

注意這裡的Disable access control是一定要勾選的,否則可能無法啟動GUI桌面。繼續下一步,點選“Save configuration”可以將配置儲存,便於下一次啟動。點選“完成”,VcXsrv就會正式啟動,如下圖11所示:

圖11 VcXsrv配置完成

一定要注意,透過Multiple windows方式啟動的VcXsrv是看不到視窗的,它是在後臺啟動的,可以在工作管理員中看到。如果因為各種原因需要重啟,就在工作管理員中關掉,確保只有一個VcXsrv程式。

以上是在win11端中的操作,接下來就是在Ubuntu終端的操作。同樣的,為了避免問題以管理員方式啟動Ubuntu終端,並且使用root許可權賬號。使用如下指令安裝xfce4桌面環境:

sudo apt install xfce4 

配置遠端的展示地址,指令如下:

export DISPLAY=192.168.31.168:0

注意這裡使用的192.168.31.168要換成你Win11端的IP地址,localhost或者127.0.0.1是不行的,因為對Ubuntu來說,Win11端其實是遠端,一定要用Win11端的IP地址。這一步在每次啟動桌面環境的時候都要設定,如果對Ubuntu環境比較熟的話可以配置到.bashrc檔案中,可以避免每次都執行這個操作。

透過sudo startxfce4啟動xfce4桌面環境,效果如下圖12所示:

圖12 啟動Ubuntu桌面環境

2.3.3 問題

如果是使用WSLg還是VcXsrv連線的方式,都還是有一些問題的。WSLg的問題是啟動GUI程式是不支援高分屏的,這樣GUI上的文字特別小,看起來非常傷眼睛。VcXsrv的問題是隻有以Multiple windows方式啟動的桌面環境才能支援GPU/OpenGL,但是這種方式啟動的桌面環境中開啟的GUI程式有點問題,具體表現為點選標題欄的關閉按鈕無法生效,或者無法透過標題欄拖動視窗的位置。圖8所示的其他方式如Fullscreen、One large window等就沒這個問題,但是又不支援GPU/OpenGL。

不過話說回來,對使用GPU的GUI程式來說,基於WSL的Ubuntu確實不是最優解,筆者這裡使用glxinfo | grep "OpenGL"顯示的OpenGL只能支援到OpenGL 3.1,更不談其他顯示卡的驅動了。以後有機會的話還是試試雙系統的Ubuntu,體驗一下滿血Ubuntu的感覺。

3. 參考

  1. Win11安裝WSL2 子系統以及不同分發版Ubuntu系統
  2. WS2 安裝ubuntu +遷移+vscode
  3. 透過 VcXsrv 在 WSL2 上使用圖形化介面
  4. wsl最絲滑的圖形桌面設定方式是什麼?

相關文章