您好,登錄后才能下訂單哦!
這篇文章主要介紹“如何在WSL2下搭建開發環境”,在日常操作中,相信很多人在如何在WSL2下搭建開發環境問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”如何在WSL2下搭建開發環境”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
1. 什么是WSL?
2. 如何安裝?
3.如何連接WSL進行遠程開發?
4. 關于文件路徑的對應
5. 文件夾的綠光把我的眼睛閃瞎了怎么辦?
6. cmd太丑了,影響心情怎么辦?
7. WSL2 如何安裝Docker
8. 其它人如何訪問我的WSL2上的服務
9. 如何設置開機自啟服務
10. 固定WSL2 IP
參考
微軟開發的windows下的Linux子系統。對Ubuntu20的兼容效果非常好,可以滿足日常開發需求。 目前有兩個版本:
WSL1:與主機共用一個網卡
WSL2:使用單獨的虛擬網卡,與主機組成局域網。WSL2更適合開發,也是本文的主題
官方安裝文檔傳送門
懶得看快速安裝步驟:
鼠標右鍵Windows圖標,使用管理員打開Powershell
執行以下命令
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
下載安裝Linux內核更新包
下載地址: https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi
這一步如果提示安裝失敗,重啟電腦再安裝即可
Powershell執行一下命令,設置默認版版本WSL2
wsl --set-default-version 2
如果此處找不到wsl命令,先重啟,然后重新安裝內核更新包
在微軟應用商店安裝Ubuntu
訪問不了商店,或者下載過慢的。可下載 離線安裝包 進行安裝
安裝完成之后,直接通過開始菜單打開Ubuntu,或使用cmd輸入Ubuntu,等待安裝完成,配置用戶名和密碼即可。
小知識:如何下載微軟商店應用離線安裝包?
進入網址:https://www.microsoft.com/zh-cn/windows/
搜索需要安裝的應用,比如Ubuntu. 然后點擊搜索結果,進入應用獲取界面。此時不要點擊獲取,否則還是會進入應用上帶你進行下載。將頁面鏈接復制下來,刪除'#'號或'?'號后面的部分。例如Ubuntu的獲取界面鏈接為
https://www.microsoft.com/zh-cn/p/ubuntu/9nblggh5msv6#activetab=pivot:overviewtab則保留
https://www.microsoft.com/zh-cn/p/ubuntu/9nblggh5msv6然后進入網址 https://store.rg-adguard.net/ ,填寫并搜索剛才保留的鏈接,點擊時間戳最新的搜索結果即可下載
最后,為了讓WSL可以訪問主機,需要新增一條防火墻策略。在PowerShell中執行
New-NetFirewallRule -DisplayName "WSL" -Direction Inbound -InterfaceAlias "vEthernet (WSL)" -Action Allow
VSCode 中直接安裝Remote-WSL插件,即可開發
其他IDE如何連接? 其他IDE有的可以原生支持WSL2,有的不支持。不一定原生支持WSL2,可以通過開啟ssh服務,實現遠程開發。網上教程很多,大家直接參考就行,此處不再贅述。例如: https://cloud.tencent.com/developer/article/1538305
注意:部分IDE支持WSL1,其原理與WSL2相差甚遠,無法兼容。還是需要使用SSH
SSH安裝過程中,如果apt下載過慢,可以先更換為國內源,然后執行
apt update
再下載。例如中科大源,可參考 https://mirrors.tuna.tsinghua.edu.cn/help/ubuntu/
WSL2 systemctl 不可用,無法直接開機啟動SSH服務,請參考本文第9節設置
window盤符在WSL中的路徑為/mnt
$ pwd /mnt $ ls c d e
可使用以下命令創建軟連接到家目錄,方便使用 ln -s /mnt/盤符/路徑 目標路徑
由于Windows的文件權限控制方式與Linux不一樣。WSL中查看Windows文件,權限位默認為777,shell中會給文件夾加上惡心的綠光。解決方案:
cd #保證在 /home/用戶名 目錄下 dircolors -p > .dircolors #如果已經存在 .dircolors文件,則會出錯,應把 .dircolors 文件先移除,執行 rm .dircolors vim .dircolors #編輯 .dircolors 文件
找到 OTHER_WRITABLE ,大概在 60 行左右,把該行的 42 改為 49 即可
應用商店安裝Windows Terminal。同樣地也可以下載離線安裝包 進行安裝
也可以開啟ssh服務后,使用xshell等遠程終端工具連接
Ubuntu發行版本可以直接安裝docker,但注意不能配置cgroup為systemd。建議直接安裝Windows版Docker,可以原生支持WSL2,兼容性更好。 具體參考: https://docs.docker.com/docker-for-windows/wsl/ 。此處不再贅述
在Windows宿主機上安裝nginx進行反向代理 下載地址: https://nginx.org/en/download.html 下載完成后,直接解壓,修改conf/nginx.conf文件,配置代理
http{ ... server { listen 80; #監聽端口 server_name localhost; location / { # 關于如何使用固定ip,請查看本文第10節 # 可以測試一下自己的版本支不支持 proxy_pass http://wsl的ip:你的服務端口 proxy_set_header X-Real-IP $remote_addr; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_http_version 1.1; proxy_buffering off; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; } } ... }
修改完成后,啟動nginx.exe即可。然后使用Windows IP + nginx設置的監聽端口
即可讓其他人也訪問你的WSL2中的服務了
參考 https://zhuanlan.zhihu.com/p/47733615 以SSH為例,先在WSL中創建/修改/etc/init.wsl
sudo cat <<EOF | tee -a /etc/init.wsl #!/bin/bash /etc/init.d/ssh $1 EOF chmod a+x /etc/init.wsl
然后在Windows中設置自啟動。按Win+R
,輸入:shell:startup
,回車后會打開文件管理器并進入啟動腳本路徑。創建啟動腳本ubuntu.vbs,內容如下
Set ws = CreateObject("Wscript.Shell") ws.run "wsl -d Ubuntu -u root /etc/init.wsl start", vbhide
保存退出,下次重啟即可生效
WSL2 IP默認是不固定的。有兩種方式可以曲線救國。
一種是在設置開機任務,開機時設置WSL IP。但由于宿主Windows的IP也會改變,所以強行設置IP可能會遇到IP沖突的情況。
另外一種是使用連接WSL2是配置hosts。設置開機任務,開機時修改Windows的hosts文件,將指定的域名指向WSL2的IP。實際使用中直接使用域名連接WSL2即可。
這里使用第二個方案。GitHub上已經有人開發了相關工具,我們直接使用即可
Github傳送門: https://github.com/shayne/go-wsl2-host
詳細使用步驟:
先下載wsl2host.exe,移動到合適的安裝目錄(服務會引用改文件,請合理放置)
使用管理員權限打開cmd或powershell,cd到wsl2host.exe所在目錄,執行
./wsl2host.exe install
然后輸入Windows的登陸用戶名和密碼(注意不是PIN)。沒有報錯即完成安裝。 打開服務檢查是否生效
如果沒有啟動,右鍵點擊啟動即可。如果出現報錯"登陸失敗.....",說明配置有誤。右鍵-屬性-登陸,重新配置以下用戶名密碼,保存后重新啟動即可。
打開C:\Windows\System32\drivers\etc\hosts文件查看,會發現新增的hosts規則
192.168.100.183 ubuntu.wsl # managed by wsl2-host
cmd中 ping ubuntu.wsl 即可看到效果
https://docs.microsoft.com/zh-cn/windows/wsl/install-win10
https://cloud.tencent.com/developer/article/1538305
https://docs.docker.com/docker-for-windows/wsl/
https://zhuanlan.zhihu.com/p/47733615
到此,關于“如何在WSL2下搭建開發環境”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。