windows11配置wsl2虛擬linux環境
wsl( Windows Subsystem for Linux )是microsoft官方為windows開發的模擬Linux方法。避免了虛擬機器vmware的效能損耗開銷,或者雙系統兩者不能同時執行的問題。wsl2似乎可以滿足大部分Linux需求。方便且優雅!
安裝wsl2
安裝方法
官方的介紹文件:
安裝wsl只需要在windows終端輸入一條指令
wsl --install
等待幾分鐘,會安裝wsl工具和預設的Linux系統。
也可以指定安裝的Linux系統
wsl --list --online //檢視可安裝的Linux版本
wsl --list --verbose //檢視已安裝Linux
wsl --install <Distro> //安裝指定Linux版本
wsl --set-default <Distribution Name> //設定預設 Linux 發行版
透過wsl執行Linux
wsl --distribution <Distribution Name> --user <User Name> //執行特定的 Linux 發行版
可能的報錯
無法執行Linux
安裝完後,執行Linux,一般出現error 0x80370114。
需要在Windows中, “設定”->“應用”->“可選功能” , 下滑至選單最下面,找到“更多windows功能”選項 。開啟“適用於Linux 的Windows子系統”功能。
參考:
WIN11按照官方文件安裝WSL2時出現error 0x80370114_半路殺出來的小黑同學的部落格-CSDN部落格
其他設定
遷移wsl位置
因為wsl預設是在C盤。出於空間問題,移動到d盤。
步驟是:匯出系統 ——刪除系統——匯入系統並重新設定儲存位置—— 修改預設登入使用者
wsl --export Ubuntu D:\wsl\ubuntu.tar #即 wsl --export <系統名> <匯出檔案目錄>
wsl --unregister Ubuntu #刪除目錄
wsl --import Ubuntu D:\wsl\Ubuntu D:\wsl\ubuntu.tar --version 2 # 即 wsl --import <系統名> <新的安裝位置> <tar檔案目錄> WSL版本號
Ubunatu config --default-user <Username> //修改預設登入使用者
參考:
透過WSL2搭建Pytorch1.10+CUDA11.4+NVIDIA Driver深度學習框架全過程 - 簡書 (jianshu.com)
磁碟掛載
需要和系統盤不一樣的磁碟(掛載不同分割槽不行)。這個沒有配置。
Linux配置
apt換源
國內的映象伺服器,有 阿里源 ,清華源,中科大源。
apt映象源配置檔案是 /etc/apt/sources.list 。
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak #備份
sudo vim /etc/apt/sources.list #編輯源配置檔案
不同的Linux版本代號,需要用不同的源。不然後面在apt update和下載軟體時,會出現各種問題。(update後有wrong,gedit下載不了,gcc下載後無法編譯原始檔,報錯找不到stdio.h等,實際上是源問題導致下載不相容的軟體)
正常的話,reading後面是沒有 wrong的。
檢視系統代號
lsb_release -a #檢視系統版本代號
uname -r #檢視核心版本,核心不對可能也有問題
我的Ubuntu的發行版是jammy,下面的換源地址就不行,它的發行版是 bionic。可以直接把bionic 改為 jammy,懶的可以直接百度jammy的映象源地址。
deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
找到的jammy源。
# 預設註釋了原始碼映象以提高 apt update 速度,如有需要可自行取消註釋
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-security main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-security main restricted universe multiverse
# 預釋出軟體源,不建議啟用
# deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-proposed main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ jammy main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ jammy main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ jammy-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ jammy-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ jammy-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ jammy-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ jammy-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ jammy-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ jammy-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ jammy-backports main restricted universe multiverse
解除安裝換源前下載的軟體
sudo apt-get remove XXX
sudo apt-get update
環境配置
一般的話,用apt install 安裝 g++,然後用vscode寫程式碼,用Linux工具編譯。
編譯時需要的硬體驅動,是在物理機(Windows)下安裝。
vscode配置
WSL外掛
在vscode下載官方的WSL外掛。現在已經改名叫WSL了。
連線方法1
vscode中,快捷鍵ctrl+shift+p,可以開啟外掛控制皮膚,呼叫外掛功能,在WSL中重新開啟資料夾。
這個的優點是可以開啟Windows下的目錄,對應的速度慢點。這種方法更靈活。
在終端透過指令方式編譯程式並執行。
連線方法2
也可以在遠端資源控制器中,選擇WSL目標,進入ubuntu。
進入之後的介面如圖
但是這個相當於進入了Linux目錄中,只能在Linux中建立檔案和目錄,速度也快些。
其他問題
講道理,應該是可以直接用vscode的執行按鈕,直接編譯檔案的。但是要處理配置檔案,而vscode的配置檔案launch.json,我目前還是看不懂的。不然會更方便。