背景
- 嘗試全面轉向win作為主力開發系統,但是很多東西需要在linux下執行,wsl經歷了一次技術路線的全面更新在網絡上的反響也還是不錯的。隨機決定進行一下嘗試
幾點說明
- 本篇文章僅僅是小白從零開始進行wsl2配置,沒有過wsl1的使用經驗,里邊的步驟也大多都是來自於萬能的互聯網
- 本篇文章不涉及深度使用的感受,后續體驗之后有時間的話會再進行記錄
概念
- wsl全名windows subsystem for linux
開始安裝
安裝WSL2功能模塊
該步驟下所有命令執行都在windows powershell(管理員模式)下
- 打開wsl功能模塊
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
- 安裝必要功能
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
- 重啟電腦,完成安裝(重要,我被卡在這里很久)
設置內核安裝默認為wsl2
- powershell(管理員)執行
wsl --set-default-version 2
- 這里正常的話是可以正常執行的,如果提示類似於需要升級wsl內核之類的信息的話,就需要手動更新一下wsl內核:
- 下載地址
- 下載完成雙擊打開一路下一步即可,無其他可選項
安裝linux子系統
- 打開windows應用商店,搜索關鍵字
linux
- 下載安裝想要使用的linux發行版,等待安裝完成
- 開始菜單啟動一次剛剛安裝的發行版,耐心等待安裝完成
配置
以下配置以本人安裝的
Debain
為例,步驟差不多,有一些命令可能會不一樣
換源
- 用預設源進行
apt-get update
,切記不能先換源,否則會出現錯誤 - 安裝必要軟件
apt-get install ca-certificates
- 備份原源列表
cp /etc/apt/sources.list /etc/apt/sources.list.backup
- 編輯源列表
nano /etc/apt/sources.list
- 將源列表內容替換為下列內容
deb [trusted=yes] https://mirrors.tuna.tsinghua.edu.cn/debian/ buster main contrib non-free
# deb-src [trusted=yes] https://mirrors.tuna.tsinghua.edu.cn/debian/ buster main contrib non-free
deb [trusted=yes] https://mirrors.tuna.tsinghua.edu.cn/debian/ buster-updates main contrib non-free
#deb-src [trusted=yes] https://mirrors.tuna.tsinghua.edu.cn/debian/ buster-updates main contrib non-free
deb [trusted=yes] https://mirrors.tuna.tsinghua.edu.cn/debian/ buster-backports main contrib non-free
# deb-src [trusted=yes] https://mirrors.tuna.tsinghua.edu.cn/debian/ buster-backports main contrib non-free
deb [trusted=yes] https://mirrors.tuna.tsinghua.edu.cn/debian-security buster/updates main contrib non-free
# deb-src [trusted=yes] https://mirrors.tuna.tsinghua.edu.cn/debian-security buster/updates main contrib non-free
- 更新源列表
apt-get update
代理上網
wsl2采用了虛擬化技術,對於宿主機來說wsl是一個單獨的虛擬網卡,等同於一張“公共網卡”,所以對於wsl2來講,win宿主機的ip地址是網卡內部的ip,需要通過命令
cat /etc/resolv.conf | grep nameserver | awk '{ print $2 }'
進行查看,為了后文敘述方便,這里假設輸出結果192.168.1.2
方案一:臨時性全局科學,僅對當前shell窗口生效
- shell窗口直接執行
export ALL_PROXY=protocol://192.168.1.2:port
方案二:軟件解決,每次需要科學的命令需要加上命令前綴
- 安裝
apt-get install proxychains
- 配置
nano /etc/proxychains.conf
- 在文件末尾根據示例添加科學地址
美化shell窗口
- 安裝zsh:
apt-get install zsh
- 安裝oh-my-zsh:
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
- 配置oh-my-zsh:
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
- 編輯
nano ~/.zshrc
- 找到
ZSH_THEME
修改為agnoster
- 找到
plugins
並在后邊添加想啟用的插件,以空格為分隔符git zsh-syntax-highlighting zsh-autosuggestions
- 找到
- 編輯
Python環境
- 為了后期方便,這里采用conda對python環境進行統一管理
- 由於wsl完全占用C盤空間,所以盡量選擇最小安裝,節省空間。Anaconda官方預算3G空間,Miniconda完全安裝完大概1G左右,故選擇miniconda進行安裝
- 步驟
- 定位到用戶目錄
cd ~
- 下載Miniconda(python3.8)安裝腳本
- 執行腳本,並根據腳本提示進行安裝
bash Miniconda3-latest-Linux-x86_64.sh
- 安裝完成,關閉當前shell窗口並重新開啟
- 執行
python -V
驗證安裝結果
- 定位到用戶目錄
寫在最后
- zsh的其他美化以及插件功能還有很多,讀者可以自行進行調研使用
- 至此wsl2內核的debian系統已經達到能用的狀態
- 在這之前作者也是一個堅定的win/linux雙系統使用者,只是近來由於一些原因必須要遷移到win平台,才發現其實在微軟這么多年的深耕之下,全球有太多的軟件公司都為win做了太多的優化,無論從美觀程度、易用程度、更新速度方面都遠超linux平台下的軟件。而現在win也在深耕wsl,更是給了win一個很大的機會,“在不重啟的情況下使用兩個系統”,聽起來就很不錯。在搜索資料的過程中偶然瞥到wsl2現在已經支持了GPU,這對深度學習工作者來講更是一個天大的好消息,同時也發現wsl對於ntfs的io慢到令人發指,作者目前還沒有感受到,只能是進行深度體驗后再說。無論如何,系統融合對於開發者來講都是一個天大的好事。