隨想錄(嘗試wsl安裝)

2021-10-10 23:16:03 字數 2286 閱讀 9866

無意中和前同事溝通的過程中,發現win10上有wsl這麼乙個東西。wsl,全稱windows subsystem for linux,相當於在windows上面就可以開發linux程式,不需要安裝virtualbox、vmware這類的虛擬機器,實際使用下來還是蠻方便的。為了防止以後忘記,先將已經獲得的使用經驗記錄下來。

1、wsl1和wsl2

wsl目前有wsl1、wsl2兩種版本。其中wsl1是api級別的**,wsl2是指令級別的**,大體是這個區別。如果簡單的業務級別,使用wsl1就可以了,當然涉及到複雜的網路配置、驅動架構,可以考慮wsl2。要是進一步需要用linux去訪問乙個硬體裝置,比如usb裝置,估計還得要vmware等軟體的幫忙。

2、安裝wsl1

本身這個步驟很簡單,(1)「啟用或關閉windows功能」中開啟「

適用於linux的windows子系統

」;(2)通過microsoft store

安裝ubuntu系統

。有了這兩個步驟,就可以在命令列用wsl啟動ubuntu,第一次使用的時候需要設定使用者名稱和密碼。後面就是正常的配置ubuntu了,比如更新軟體源,安裝sshd、gcc、g++、gdb、python、vim這些常規操作了。本身wsl1不能很好地支援圖形介面,有這方面需求的朋友可能有點失望了。此外,host和guest是共享同乙個ip的,所以對於linux開啟的任何服務,都可以通過127.0.0.1來訪問。檔案系統方面,windows的c盤、d盤本身直接被載入在/mnt下面,使用也很方便。如果發現區域網的ip不能訪問linux,可以通過netsh命令透傳的方法解決,這也不複雜,netsh有點類似於iptables這個命令。有了這些操作,基本上ubuntu就可以用起來了。注意,有一些命令wsl1是不支援的,比如lsmod等等。

3、公升級到wsl2

有的同學也許希望獲得乙個完整的linux核心開發功能,這個時候可以考慮wsl2。步驟也不複雜,(1)開啟「虛擬機器平台」的系統服務選項;(2)安裝wsl_update_x64.msi這個軟體;(3)開啟bios虛擬化,同時公升級一下之前安裝的ubuntu,輸入wsl

--set-version ubuntu 2就可以。這個如果需要影象介面,一般會安裝乙個xrdp,這樣就可以實現遠端連線。另外還是網路的問題,這部分可以通過ip**的方法來解決,比如

netsh ine***ce portproxy add v4tov4 lisetenport=8080 connectaddress=127.0.0.1 connectport=8080

,將connectaddress換成自己的虛擬網絡卡位址就好了。當然正如之前談到的,wsl2對usb裝置、64位網路位址這部分,支援不是很好。所以有這方面需求的訪求還得想想其他的方法。

4、wsl和vmware、virtualbox的關係

如果支援用wsl做linux伺服器開發,這部分是非常適合的,沒有太大疑問。但是你真的要把linux當作乙個os系統來用,個人還是推薦vmware、virtualbox更好一點,本身wsl的存在更多是為了方便在windows上做linux開發,不適合用它來學習linux,如果真是這樣,就本末倒置了。

5、wsl1和wsl2共處

wsl1和wsl2本身是可以放在一起的,使用者可以自己設定預設選項,比如wsl --set-default-version 1,或者wsl --set-default-version 2。如果不清楚當前版本,可以輸入wsl -l -v檢視一下就好了。

6、虛擬機器的解除安裝

如果不喜歡虛擬機器,直接wslconfig解除安裝就好了,wslconfig /u ubuntu。

7、wsl1、wsl2解除安裝

如果連wsl也不想要了,那麼可以關閉對應的服務,解除安裝wsl_update_x64這個軟體就可以了。

8、如何使用wsl

個人覺得如果採用開發的角度看,wsl還是很不錯的,開發速度也是可以的。但是如果用linux部署和執行的角度看,在gui和網路配置上面稍顯麻煩,當然有了遠端訪問和netsh的幫助,很多問題也是可以繞過去的。但是,這相當於為了解決乙個複雜的問題,卻引入了另外乙個複雜的問題,各種權衡就看個人的需求了。實際開發中,最好wsl和virtualbox都準備乙份,軟體開發好了,port到virtualbox上跑一下,實際執行中沒有問題了,再upload到運營商的vps上面,這樣就基本不會有什麼大的問題,使用上也方便的很。至於很多朋友說的docker模式,可以嘗試,不失為乙個選擇。

其他:針對linux的開發,雖然vs code和visual studio提供了一些外掛程式,不過既然選擇linux,還是應該多多使用命令來解決。比如說,在win10上用source insight來編輯**,linux上用makefile來編譯,git來管理,gdb來除錯,這也是不錯的linux開發方法,朋友們可以試試看。

軟體隨想錄

最近閱讀了由阮一峰翻譯的,有程式設計師部落酋長之稱的 joel 撰寫的 軟體隨想錄 精華摘抄如下 就如同所有行業最好的人才一樣,那些優秀的程式設計師是不會出現在招聘市場的。通常優秀的程式設計師在整個職業生涯中,可能會有4次求職。實習生制度創造了輸送優秀人才的管道,但是這個管道比較長,而且一路上損耗很...

專案隨想錄

發現自己不怎麼會起題目了。中午回去還沒走到寢室,就接到劉老師的 說要把程式調通,於是中午吃完飯立馬跑回去,把顯示問題解決了。其實那個無效數字問題是因為在hql語句中使用了cast pw as integer 將字串轉成integer型,可是資料庫中的內容程式設計了字母加數字,自然會轉換失敗了,唉,真...

雜文 隨想錄

這裡是一些隨想。關於名為二氫婦女的使用者本人,希望 ta 能有乙個美好的未來。科學雖然給我們許多驚奇,但也攪壞了我們許多好夢。當登上了月球的那一刻,一切有關月的夢都被現實的蒼涼所破碎了。從那一步邁出起,廣寒宮破碎,輝夜姬亦未曾回到月上,阿爾忒彌斯丟失了金弓與駕月之車,一切有關月的神話於此失去光輝,人...