作 者:道哥,10+年的嵌入式開發老兵。
公眾號:【IOT物聯網小鎮】,專注於:C/C++、Linux作業系統、應用程式設計、物聯網、微控制器和嵌入式開發等領域。 公眾號回覆【書籍】,獲取 Linux、嵌入式領域經典書籍。
轉 載:歡迎轉載文章,轉載需註明出處。
在上一篇文章中,我們主要聊了一下:在 Windows
系統中,安裝 WSL
子系統。
文章在此:WSL:在 Windows 系統中開發 Linux 程式的又一神器
但是 WSL
只是長得像 Linux
而已,雖然在這個子系統中,我們可以執行 Linux 程式,但是到了底層,WSL
呼叫的還是 win32 API
。
也就是說:WSL 只是一個適配層。
後來,微軟終於放出了 WSL2
這個真正的 Linux
子系統,這是一個真正的 Linux 完整核心,與傳統的虛擬機器 VitualBox
、VMWare
一樣,但是它與宿主機的互操作性更好。
為了完整性,我們就繼續把這個流程給走完。
在這個過程中遇到的問題、需要的安裝軟體等資源,已經上傳到網盤,在文末有下載地址。
安裝 WSL2 的前提條件
在開始之前,我們先來看一下目前電腦中的 WSL
的版本。
在 Windows
命令列視窗,輸入指令: wsl --list --verbose
(或者輸入簡化版本: wsl -l -v
),得到結果:
可以看到我們上一篇文章中安裝的 Ubuntu-18.04
,而且 WSL
的版本是 1
。
如果要升級到 WSL2
,Windows
作業系統的核心版本必須滿足一定的要求,如下:
我們就按照官方的要求,檢查一下自己的電腦是否滿足需求:選擇 Windows
徽標鍵 Win + R,然後鍵入 winver
,選擇 “確定”。
看來我的系統能滿足要求,那就繼續下一個步驟!
如果你的核心版本不滿足這個需求,可以搜尋關鍵字 “WIN10 獲取內部預覽版本”,就可以找到解決方案。
安裝 WSL2
繼續以管理員身份啟動 PowerShell
,然後執行指令:
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
此時,又到了重啟電腦的時候!
重啟之後,繼續在 PowserShell
中,把 Ubuntu-18.04
設定為 WSL2
版本。
輸入的指令是:
wsl --set-version Ubuntu-18.04 2
這個步驟可能會遇到這樣的問題:
解決方法:從微軟的官網下載 WSL2 Linux 核心升級包,下載地址是:
也可以從文末的網盤中下載
下載之後,一路 Next
安裝即可。
此時,在 PowerShell
中重新執行 wsl --set-version Ubuntu-18.04 2
指令(需要等待一段時間,大概 1
分鐘左右吧):
同時,把 WSL
的預設版本改為 2
: wsl --set-default version 2
。
此時,我們再執行指令 wsl -l -v
來檢視一下,就變成 WSL2
版本了:
現在,重新啟動一下 Ubuntu-18.04
系統,雖然還是黑乎乎的視窗,但是它可是一個完整、純正的 Linux 作業系統!
安裝桌面環境
這部分的操作,參考:https://autoize.com/xfce4-desktop-environment-and-x-server-for-ubuntu-on-wsl-2/。
關於 Linux
的桌面環境,它與 Windows
桌面環境的理念有一些不一樣。
在 Linux
系統中,桌面環境是一個獨立的應用程式,不屬於作業系統的一部分。
換句換說,即使沒有桌面環境,也可以很愉快的玩 Linux
系統,比如那些伺服器之類的裝置。
Linux
中的桌面由客戶端和服務端組成,它們之間通過一個協議來通訊,俗稱:X11
。
服務端:負責圖形的顯示;
客戶端:根據系統設定的 DISPLAY 環境變數,把顯示圖形的請求傳送給服務端;
因此,為了讓我們的 Ubuntu
顯示圖形介面,我們就需要安裝一個服務端軟體和客戶端軟體。
注意:這裡的服務端軟體是安裝在 Windows
系統中的,客戶端是安裝在 Ubuntu-18.04
系統中的。
安裝客戶端
在 Ubuntu-18.04
的終端視窗中,執行如下指令安裝客戶端軟體 xfce4
:
sudo apt-get update && sudo apt-get upgrade -y
sudo apt-get install xfce4
配置 DISPLAY 環境變數
因為 Ubuntu
中的客戶端 xfce4
需要把顯示請求,通過網路傳送給 Windows
上的服務端,因此需要知道 Windows
系統的 IP
地址,在 Windows
系統中的命令列視窗中檢視:ipconfig
然後在 Ubuntu-18.04
中把這個 IP
地址,配置到家目錄下的 .bashrc
檔案中:
$ cd
$ vi .bashrc
在檔案末尾新增:
export DISPLAY=192.168.192.1:0
儲存、關閉檔案之後,執行:source ~/.bashrc
更新即可。
安裝服務端
圖形介面有 VcXsrv
和 Xming
兩款軟體,我們選擇前面的 VcXsrv
。
同樣的,我已經把 vcxsrv-64.1.20.9.0.installer.exe 放在網盤裡,下載後一路 Next
安裝。
安裝之後,啟動 Windows
桌面上的 XLaunch
程式:
然後,按照參考文件中的配置,如下:
在最後一個步驟,可以把配置資訊儲存在桌面上。
啟動客戶端
在 Ubuntu-18.04
系統中的命令列視窗,執行指令:startxfce4
:
此刻,神器的事情就發生了:你的 Windows 系統中是不是就跳出了下面這個視窗:
可以開啟桌面上 File System
,是不是看到了很多熟悉的身影?
在開啟 mnt
目錄,是不是看到了 Windows
系統中的碟符?
但是,中文資訊顯示的都是亂碼!那我們就來安裝中文語言支援包。
中文支援
在 Ubuntu-18.04
系統命令列視窗,設定 locale
:
此時,我們可以使用桌面環境中的終端視窗,如下圖所示:
sudo vi /etc/locale.gen
把下圖中的藍色這一行復制,然後去掉前面的 #
和 空格
,然後儲存、退出。
然後在終端中執行指令: sudo locale-gen
單機右上角的使用者名稱,選擇 【Log Out..】
此時,Ubuntu
虛擬機器的 WSL
視窗中的 xfce4
客戶端會退出,再次執行 startxfce4
啟動客戶端:
再次,在桌面中的終端視窗中,把 locale
改為中文:
sudo vi /etc/default/locale
把 LANG=C.UTF-8
改為 LANG=zh_CN.UTF-8
然後,把下面這個幾個中文語言包給它安裝進去:
sudo apt install language-pack-zh-hans
sudo apt install language-pack-gnome-zh-hans
sudo apt install language-pack-kde-zh-hans
此刻,你再看一下剛才的那些亂碼,是不是已經正確顯示中文了?
接下來,你還可以安裝各種 IDE
,探索它們是如何共享檔案的...
文中需要安裝的軟體,已經上傳到網盤中了。
請在公眾號後臺回覆721(不是留言區啊),即可收到下載地址,謝謝!
推薦閱讀
【1】C語言指標-從底層原理到花式技巧,用圖文和程式碼幫你講解透徹
【2】一步步分析-如何用C實現物件導向程式設計
【3】原來gdb的底層除錯原理這麼簡單
【4】內聯彙編很可怕嗎?看完這篇文章,終結它!
其他系列專輯:精選文章、C語言、Linux作業系統、應用程式設計、物聯網