# 如何在Win11上安裝wsl/wsl2並建置vscode環境以運行C/C++/Python (注意:此篇文章並沒有完全寫完,僅wsl2安裝寫得較完善。若有缺失請先參考參考文章第四點的文章) ==(再注意:這幾個月換成MacOS了,所以新增的一些步驟可能沒有圖/都是憑記憶口述。如果有出錯就麻煩去找其他文章吧QQ)== wsl = Windows Subsystem for Linux 也就是在Windows下跑Linux(在一個作業系統裡裝另一個作業系統) 一般安裝wsl都是為了跑python或C/C++。 以下主要為wsl的安裝步驟,後面會補上python的其他步驟。 (目錄請善用HackMD目錄功能~) --- ## wsl/wsl2 [wsl與wsl2的差別](https://learn.microsoft.com/zh-tw/windows/wsl/compare-versions)。 如果沒有需要用到wsl2的話,應該可以直接跳到第4步。 ### 安裝wsl2的裝置需求 ![](https://i.imgur.com/qOtG9M7.png) [詳細需求在此](https://learn.microsoft.com/zh-tw/windows/wsl/install-manual#step-2---check-requirements-for-running-wsl-2),檢查好後就可以開始進行安裝前的設定作業了~ ### 1-1 檢查virtualization是否有啟用 **工作管理員**->**效能**,從CPU看是否有啟用模擬。 ![](https://i.imgur.com/2Am7zSq.png =75%x) 有的話就沒事繼續下一步。沒有的話就得更動BIOS設定,開啟方式是**設定**->**系統**->**復原**->**進階啟動**。 ![](https://i.imgur.com/nMDnzY4.png =60%x) 點下去後電腦會重啟,然後進到一片很多選項的頁面。 ~~但因為我自己沒有需要啟動這個的情況所以中文長怎樣我也不知道,就請需要開啟的人再看[這篇文章(全英文)](https://s1gr1d.medium.com/how-to-set-up-linux-on-windows-with-wsl-2-debe2a64d20d)的「2. Check if virtualization is enabled」揣摩ㄌ~~ ### 1-2 啟用Windows子系統Linux版 進設定跟指令法,兩種2擇1。 #### 進設定 在設定搜尋找到**開啟或關閉Windows功能**。 ![](https://i.imgur.com/H9NYANu.png) 或是~~帥一點~~快捷鍵++win\+R++打開**執行**輸入`optionalfeatures`。 ![](https://i.imgur.com/AwVNQKj.png =75%x) 把那個**Windows子系統Linux版**打勾。 ![](https://i.imgur.com/PKoTlpX.png) 按確定後重啟,但可能也不用因為下一個步驟也在這個頁面。 #### 指令法 打開PowerShell __(以系統管理員身份執行)__ 並打上以下指令送出。 ``` dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart ``` 一樣成功後重啟,但可能也不用因為下一個步驟也在這個頁面。 :::warning **注意** 上面兩種方法擇一完成重啟後,**設定**->**Windows Update** 刷新一下應該會有幾個22H2的更新,要全部更新(這個更完好像不用重新開機)。 ![](https://i.imgur.com/Uf1u7Zh.png =75%x) 大概是這些更新,這張圖是更新完後可以在更新記錄看到。 ::: ### 1-3 啟用虛擬機器平台 一樣進設定跟指令法,兩種2擇1。 #### 進設定 和1-2一樣找到**開啟或關閉Windows功能**後把那個**虛擬機器平台**打勾。 ![](https://i.imgur.com/9Bq4paj.png) #### 指令法 打開PowerShell __(以系統管理員身份執行)__ 並打上以下指令送出。 ``` dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart ``` 上面兩種方法擇一後我忘記須不須要重啟但保險一下還是重啟吧,然後==如果1-2做完還沒重啟的話記得重啟完去Windows Update更新!!== :::danger 1-1沒做的話1-3好像會開不起來,所以一定要先做1-1! 至於1-2要哪時做好像都沒關係,只要有記得重啟+Windows Update就行了。 ::: ### 2 更新Linux核心(kernel) 有牽涉到下載檔案的部分我一律給[連結](https://learn.microsoft.com/zh-tw/windows/wsl/install-manual#step-4---download-the-linux-kernel-update-package)。 看你的電腦是x64還是ARM64,選對應的更新套件下載後點兩下執行安裝,這個裝很快。 ### 3 設定預設version 在PowerShell打上(這邊開始不需要管理員身份了): ``` wsl --set-default-version 2 ``` 就預設都會是wsl2了。 (下面有如何從wsl2切成wsl的方法) ### 4 安裝Linux 總算正式走到這步la~ 找安裝有兩種方法,商店下載跟打指令。 #### 商店下載 打開**Microsoft Store**搜尋「linux」,然後挑一個你要的下載。 (如果不知道要選哪個就挑20.04那個~~因為我也用那個~~) ![](https://i.imgur.com/ikRK1y3.png =75%x) 如果不明原因載不了或是想要的版本在Store找不到的話,微軟在[這裡](https://learn.microsoft.com/zh-tw/windows/wsl/install-manual#step-6---install-your-linux-distribution-of-choice)有給每種Linux的Store下載連結,再往下拉一下也有提供可以手動安裝的Linux發行版本。 #### 打指令 在PowerShell打上下面指令,查詢有什麼linux版本可以安裝。 ``` wsl --list --online ``` ![](https://i.imgur.com/OAqUtts.png) 然後和圖片上面寫的一樣,用下面的指令安裝你要的版本。 ``` wsl --install -d <Distro> ``` \<Distro\>是指左欄的NAME喔。 中間可能會要同意什麼的,就都y就對了。有遇到錯誤訊息就全部複製貼google查~~因為我也不知道不明瞭不想要為什麼 我的心~(~~ \- 用上面任一解法成功後應該就會先自己執行了,如果沒有執行就直接去**開始**找剛下載好熱騰騰的Linux點一下執行。 如果安裝成功設定也正常,就會要你輸入新的使用者名稱跟密碼(不用和你的Windows一樣),恭喜完成安裝WSL~~~ 若中間有失敗的話,它噴的訊息不一定能看懂,但後面通常會給一串網址,那個網址比較有用,再慢慢試著透過網址解決問題吧~ --- ### 其他wsl指令 查詢有安裝的子系統資訊: ``` wsl -l -v ``` ![](https://i.imgur.com/MykHvhF.png =75%x) \- 如果想要更改某個子系統的wsl版本(更改好像會花一點時間): ``` wsl --set-version <distribution name> <versionNumber> ``` \<distrivution name\>: 就是上圖的NAME。 \<versionNumber>: 1或2。 ### OhMyZsh - 如果你想讓操作介面更美觀 如果覺得wsl的terminal超級醜,一坨白白的很難辨認的話,可以安裝OhMyZsh! #### 1 進入wsl 在PowerShell打下面指令應該可以開啟wsl。(接下來的操作都會在wsl的環境裡) ``` wsl ``` #### 2 [安裝OhMyZsh](https://ohmyz.sh/#install) 在wsl裡打入下面的指令: ``` sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" ``` #### 3 啟動 下載完畢後,可以重新啟動比較保險。 在wsl裡打入下面的指令: ``` zsh ``` 就會進入到zsh了。 #### 4 設為預設 有點忘記安裝完後會不會一開wsl就進zsh殼層裡。如果沒有且想要作為預設的話,根據[這個網站](https://blog.evalcode.com/zsh-default-wsl-windows-10/),打下以下指令就可以了: ``` chsh -s $(which zsh) ``` ~~(應該是這樣,出問題就請估狗ㄅ)~~ #### 5 設定./zshrc ``` vim ~/.zshrc ``` vim是linux裡的文件預覽編輯程式,這一行的意思是:用vim打開.zshrc這個設定檔。 ##### vim操作 打完之後應該會看到一份文件,裡面可能全空也可能有很多字(裝完OhMyZsh的話應該要是很多字)。 1. 此時在**瀏覽模式**裡,這時隨便亂按應該是無法寫入文件的。 2. 按下```I```,左下角會有訊息寫```INSERT```,代表現在進入**寫入模式**。 3. 開始自訂theme和想要的plugin,我自己的配置在[這一篇筆記](https://hackmd.io/@hsueh945/HkrLxHfKT)供參。 4. 寫完後按下```esc```離開寫入模式,回到瀏覽模式。 5. 在瀏覽模式下打出```:wq```並enter。(wq=write quit) 6. 完成編輯! #### 6 重啟zsh 再打一次```zsh```重啟(或是先```bash```再```zsh```也可以)。 \*如果有說什麼找不到plugin,上面vim操作步驟3的筆記裡有方法,或是上網找怎麼補全都可以。網路上也有更多人推薦的plugin可以參考。 --- ## 設定vscode(安裝完wsl/wsl2後) ### 1 下載vscode然後安裝 [這裡下載!](https://code.visualstudio.com/Download) ### 2 到Extension下載WSL 這個擴充使得vscode可以連到WSL。 (照理說安裝了什麼東西都最好重新開機一下,這裡可以做一下) ![Screenshot 2024-11-05 at 9.24.16 PM](https://hackmd.io/_uploads/H1EObPdbJe.png) ### 3 左下角那個箭頭圖案 那個藍藍的東西,點下去。 ![Screenshot 2024-11-06 at 12.51.07 PM](https://hackmd.io/_uploads/SJhj9EKZyl.png) 應該會有個選項是「連接到wsl」,點下去。 \*如果要在wsl開啟某個資料夾,則先開啟資料夾後再點這個藍藍按鍵,應該會有個選項是「在wsl中重新開啟這個資料夾」。 ### 4 開啟Terminal 選單列->Terminal->New Terminal 開啟wsl終端,大功告成!! --- --- ## Python ### pip 通常Linux裝完後內建就會有python,但不一定會有pip。 安裝pip指令 ``` sudo apt install python3-pip ``` 安裝完後,試著查詢 ``` pip list ``` 如果安裝有出錯沒有成功,試著跑 ``` sudo apt-get update ``` 之後==重啟Linux==再重新安裝pip。~~再失敗就無限循環~~ --- 參考文章 1. [舊版 WSL 的手動安裝步驟 - Microsoft](https://learn.microsoft.com/zh-tw/windows/wsl/install-manual) 2. [How to set up Linux on Windows with WSL 2 - Medium](https://s1gr1d.medium.com/how-to-set-up-linux-on-windows-with-wsl-2-debe2a64d20d) 3. [WSL 與 Windows 的完美雙結合 — 修改VSCode的預設Terminal為WSL - Medium](https://medium.com/%E4%B8%80%E5%80%8B%E5%B0%8F%E5%B0%8F%E5%B7%A5%E7%A8%8B%E5%B8%AB%E7%9A%84%E9%9A%A8%E6%89%8B%E7%AD%86%E8%A8%98/wsl-%E8%88%87-windows-%E7%9A%84%E5%AE%8C%E7%BE%8E%E9%9B%99%E7%B5%90%E5%90%88-%E4%BF%AE%E6%94%B9vscode%E7%9A%84%E9%A0%90%E8%A8%ADterminal%E7%82%BAwsl-2ab3604a7ef5) 4. [Python:Visual Studio Code 在 WSL 中進行開發 - HackMD](https://hackmd.io/@withhhsong/python_wsl) 5. [WSL:在 Win10 安裝 Linux 子系統](https://withhhsong.com/wsl_linux/) 6. [Windows 10 安裝 WSL1、WSL2(手動安裝) - HackMD](https://hackmd.io/@Kailyn/BkMi80IeF) 7. [Windows 11 安裝 WSL2](https://hackmd.io/@Kailyn/H1N5OPKlF) 8. [在Windows11上安裝Windows 子系統 Linux 版 WSL2 - 不及格研究室](https://blog.twshop.asia/%E5%9C%A8windows11%E4%B8%8A%E5%AE%89%E8%A3%9Dwindows-%E5%AD%90%E7%B3%BB%E7%B5%B1-linux-%E7%89%88-wsl2/)