作 者:道哥,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操作系統、應用程序設計、物聯網