微软官方wsl手册
微软官方wsl手册pdf

零、win10环境下wsl1升级wsl2

打开win10的设置,搜索windows功能,打开启用或者关闭Windows功能(win11可能搜不到,需要在控制面板里面搜索)
在这里插入图片描述
勾选以下2个地方,并重启,也有可能是中文名字“虚拟机平台”
在这里插入图片描述
下载WSL2升级包,并点击安装
WSL2升级包
以管理打开Powershell,并执行以下命令
将WSL 2设置为默认版本,以后下载安装的ubnutu默认就是wsl2,也可以不执行这条命令

wsl --set-default-version 2

在这里插入图片描述

(2)用指令查看当前子系统的版本号,你可能有多个系统

wsl -l -v

在这里插入图片描述

如上图,我的版本号为2是因为我升级过WSL2,未升级过的应该是1,然后记住你的系统名字 Ubuntu-20.04

(3)执行升级指令,其实执行这一条指令就行
指令如下,其中的Ubuntu-20.04就是你上个步骤查看到的系统名字,你的如果是18.04的话就换个系统名字就行

wsl --set-version Ubuntu-20.04 2

在这里插入图片描述

大约几分钟后出现转换完成就表示转换OK。

(3)确认升级成功
指令如下

wsl -l -v

在这里插入图片描述

成功后版本号就是2

一、wsl中镜像安装

启用或关闭Windows功能勾选一下两个选项
在这里插入图片描述
打开powershell,输入wsl, 可以根据wsl的命令来安装镜像。也可以在软件商店中进行安装ubuntu
在这里插入图片描述
安装完成后,打开ubuntu,会自动完成初始化。提示安装成功,自动登入账户,登入为root账户。
在这里插入图片描述
这样设置完成后,登入的都是root用户。可以通过下面的方式来修改:
只需要在C:\Users\用户名\AppData\Local\Microsoft\WindowsApps路径下确认所安装的Linux子系统具体的版本号
在这里插入图片描述
然后打开CMD,输入XXXXXX版本号.exe config --default-user root运行
在这里插入图片描述
再重新登入即可。

出现错误:
如果出现系统找不到指定的文件,是因为之前安装的没有卸载的原因

wsl --list --all
wsl --unregister 名字

重新安装就行了

二、将安装的镜像移出C盘

在这里插入图片描述

三、配置cuda环境

cuda下载页

在这里插入图片描述

值得注意的是WSL版本要求是WSL2.0,可以选择本地安装也可以选择网络安装,我选择的是本地运行文件(因为前两种试了都不行),官网的安装源码如下,安装的时候需要注意一下安装的cuda版本,默认为最新版本,但目前pytorch官网上支持的最新cuda版本为11.3所以需要选择安装:

wget https://developer.download.nvidia.com/compute/cuda/11.3.0/local_installers/cuda_11.3.0_465.19.01_linux.run

sudo sh cuda_11.3.0_465.19.01_linux.run

在这里插入图片描述
安装的过程中可以看到驱动检测不到,属于正常情况。

可能会出现gcc版本不对的问题
这样可以跳过错误

sudo sh cuda_11.3.0_465.19.01_linux.run --override

安装完成以后

sudo vim ~/.bashrc
在上面的文档中添加下面两句
export LD_LIBRARY_PATH=/usr/local/cuda/lib64
export PATH=$PATH:/usr/local/cuda/bin

source ~/.bashrc
#查看cuda版本
nvcc -V
#查看nvidia界面,这个需要在原本的Windows系统上安装nvidia驱动的
nvidia-smi

在这里插入图片描述
至此,cuda安装完毕,但是gcc版本不匹配的问题还没有解决。
在使用nvcc编译的时候会出现错误。
unsupported GNU version! gcc versions later than 10 are not supported! The nvcc flag '-allow-unsupported-compiler' can be used to override this version check; however, using an unsupported host compiler may cause compilation failure or incorrect run time execution. Use at your own risk.

由于linux中可以有多个版本的gcc和g++,我们可以为系统默认的gcc和g++指定特定的默认版本,但是对于cuda的nvcc来说有更方便的方法,那就是nvcc会优先读取自身路径下的gcc然后如果没有再读取系统默认路径下的gcc,因此我们只需要为nvcc设置特定版本gcc的软连接即可:
可以支持多个版本的gcc和g++安装

gcc -v
sudo apt-get install gcc-10
sudo apt-get install g++-10

安装的时候可能出现找不到包的问题
以下解决

sudo apt-get update

为cuda设置软链接:

sudo ln -s /usr/bin/gcc-10 /usr/local/cuda/bin/gcc

接下来就可以编译了

nvcc t.cu -o t
./t

四、docker安装

微软官方使用手册

在这里插入图片描述
在这里插入图片描述

五、miniconda安装

  • 下载安装包

清华源miniconda
清华源anaconda
下载下来时xxxxx.sh文件

  • 安装
bash xxxxx.sh

配置环境变量

vim ~/.bashrc

文件末尾加
export PATH=$PATH:/home/xxxx/miniconda3/bin
保存

source .bashrc
conda -V

激活conda的base环境
source activate
  • 源配置

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --set show_channel_urls yes
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud//pytorch/
  • 环境创建和包安装
conda create -n name python=3.9
activate name

两种包安装方式
pip2 install pytorch

conda install pytorch

六、更改wsl网络模式为桥接(默认为NAT)

参考
由于WSL2底层使用的是Hyper-V虚拟机,所以我们可以修改虚拟交换机的类型,来启用桥接网络
打开Hyper-V管理器 -> 操作 -> 虚拟交换机管理器, 修改WSL的连接类型为“外部网络”

在这里插入图片描述
这一步,需要将wsl关闭

wsl --shutdown

注意点:重启Windows10后桥接失败。重启后桥接可能会失败,而且上不了网,可以取消勾选外网网口的“Hyper-V可扩展的虚拟交换机”选项,然后重新配置桥接(自测不需要重新配置桥接)
在这里插入图片描述
WSL2的MAC地址不固定
由于WSL2的MAC地址每次重启后都会变化,所以桥接后DHCP的ip也是非固定的,参考issue。

目前没有好的解决办法,一些依赖MAC地址的服务,可能会工作不正常。如samba的域名访问。

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐