windows下使用wsl2初体验
目录
背景⌗
- 尝试全面转向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慢到令人发指,作者目前还没有感受到,只能是进行深度体验后再说。无论如何,系统融合对于开发者来讲都是一个天大的好事。
Read other posts