error_reporting(0); error_reporting(E_ALL ^ E_WARNING);

登录后台

页面导航

本文编写于 421 天前,最后修改于 411 天前,其中某些信息可能已经过时。

1. 使用 WSL 在 Windows 上安装 Linux

1.1 先决条件

必须运行 Windows 10 版本 2004 及更高版本(内部版本 19041 及更高版本)或 Windows 11 才能使用以下命令。 如果使用的是更早的版本,请参阅手动安装页

1.2 安装 WSL 命令

现在,可以使用单个命令安装运行 WSL 所需的一切内容。 在管理员模式下打开 PowerShell 或 Windows 命令提示符,方法是右键单击并选择“以管理员身份运行”,输入 wsl -install 命令,然后重启计算机。

wsl --install

此命令将启用运行 WSL 并安装 Linux 的 Ubuntu 发行版所需的功能。 (可以更改此默认发行版)。
如果你运行的是旧版,或只是不想使用 install 命令并希望获得分步指引,请参阅旧版 WSL 手动安装步骤
如果你运行的是旧版,或只是不想使用 install 命令并希望获得分步指引,请参阅旧版 WSL 手动安装步骤
首次启动新安装的 Linux 发行版时,将打开一个控制台窗口,要求你等待将文件解压缩并存储到计算机上。 未来的所有启动时间应不到一秒。

上述命令仅在完全未安装 WSL 时才有效,如果运行 wsl --install 并查看 WSL 帮助文本,请尝试运行 wsl --list --online 以查看可用发行版列表并运行 wsl --install -d 以安装发行版。 若要卸载 WSL,请参阅卸载旧版 WSL注销或卸载 Linux 发行版

1.3 更改默认安装的 Linux 发行版

默认情况下,安装的 Linux 分发版为 Ubuntu。 可以使用 -d 标志进行更改。

若要更改安装的发行版,请输入:wsl --install -d 。 将 替换为要安装的发行版的名称。

若要查看可通过在线商店下载的可用 Linux 发行版列表,请输入:wsl --list --online wsl -l -o

若要在初始安装后安装其他 Linux 发行版,还可使用命令:wsl --install -d

提示

如果要通过 Linux/Bash 命令行(而不是通过 PowerShell 或命令提示符)安装其他发行版,必须在命令中使用 wsl.exe:wsl.exe --install -d 或若要列出可用发行版,则使用:wsl.exe -l -o

如果在安装过程中遇到问题,请查看疑难解答指南的安装部分
要安装未列为可用版本的 Linux 发行版,可使用 TAR 文件导入任何 Linux 发行版。 在某些情况下,与 Arch Linux 一样,也可使用 .appx 文件进行安装。 还可以通过 WSL 创建自己的自定义 Linux 发行版,以供使用。

1.4 设置 Linux 用户信息

安装 WSL 后,需要为新安装的 Linux 发行版创建用户帐户和密码。 请参阅设置 WSL 开发环境的最佳做法指南来了解详细信息。

1.5 设置和最佳做法

建议遵循设置 WSL 开发环境的最佳做法这一指南,逐步了解以下操作:为已安装的 Linux 发行版设置用户名和密码、使用基本的 WSL 命令、安装和自定义 Windows 终端、针对 Git 版本控制进行设置、使用 VS Code 远程服务器进行代码编辑和调试、文件存储的最佳做法、设置数据库、装载外部驱动器、设置 GPU 加速等。

1.6 检查正在运行的 WSL 版本

可列出已安装的 Linux 发行版,并通过在 PowerShell 或 Windows 命令提示符中输入以下命令来检查每个发行版的 WSL 版本:wsl -l -v

要在安装新的 Linux 发行版时将默认版本设置为 WSL 1 或 WSL 2,请使用命令 wsl --set-default-version <Version#>;,将 <Version#>; 替换为 1 或 2。

要设置与 wsl 命令一起使用的默认 Linux 发行版,请输入 wsl -s <DistributionName>wsl --setdefault <DistributionName>,将 <DistributionName> 替换为要使用的 Linux 发行版的名称。 例如,从 PowerShell/CMD 输入 wsl -s Debian,将默认发行版设置为 Debian。 现在从 Powershell 运行 wsl npm init 将在 Debian 中运行 npm init 命令。
要在 PowerShell 或 Windows 命令提示符下运行特定的 WSL 发行版而不更改默认发行版,请使用命令 wsl -d <DistributionName>,将 <DistributionName> 替换为要使用的发行版的名称。
有关详细信息,请参阅 WSL 的基本命令指南。

1.7 将版本从 WSL 1 升级到 WSL 2

使用 wsl --install 命令安装的新 Linux 安装将默认设置为 WSL 2。

wsl --set-version 命令可用于从 WSL 2 降级到 WSL 1,或将以前安装的 Linux 发行版从 WSL 1 更新到 WSL 2。

要查看 Linux 发行版是设置为 WSL 1 还是 WSL 2,请使用命令 wsl -l -v

要更改版本,请使用 wsl --set-version <distro name> 2 命令将 <distro name> 替换为要更新的 Linux 发行版的名称。 例如,wsl --set-version Ubuntu-20.04 2 会将 Ubuntu 20.04 发行版设置为使用 WSL 2。

如果在 wsl --install 命令可用之前手动安装了 WSL,则可能还需要启用 WSL 2 所使用的虚拟机可选组件安装内核包(如果尚未这样做)。
如需了解更多信息,请参阅 WSL 命令参考以获取 WSL 命令列表,并参阅比较 WSL 1 和 WSL 2,获取有关用于你的工作场景的指南,或参阅设置 WSL 开发环境的最佳做法,了解有关使用 WSL 设置良好开发工作流的一般指南。

1.8 使用 WSL 运行多个 Linux 发行版的方法

WSL 支持运行想要安装的任意数量的不同 Linux 发行版。 这可能包括从 Microsoft Store 选择发行版、导入自定义发行版生成自己的自定义发行版
安装后,有几种方法可以运行 Linux 发行版:
安装 Windows 终端(推荐):使用 Windows 终端支持你想要安装的任意数量的命令行,并允许你在多个标签或窗口窗格中打开它们并在多个 Linux 发行版或其他命令行(PowerShell、命令提示符、PowerShell、Azure CLI 等)之间快速切换。 可使用独特的配色方案、字体样式、大小、背景图像和自定义键盘快捷键来完全自定义终端。 了解详细信息。
通过访问 Windows“开始”菜单并键入已安装的发行版的名称,可以直接打开 Linux 发行版。 例如:“Ubuntu”。 这会在其自己的控制台窗口中打开 Ubuntu。

在 Windows 命令提示符或 PowerShell 中,可以输入已安装的发行版的名称。 例如:ubuntu

在 Windows 命令提示符或 PowerShell 中,可以在当前命令行中打开默认的 Linux 发行版,方法是输入:wsl.exe

在 Windows 命令提示符或 PowerShell 中,可以在当前命令行中使用默认的 Linux 发行版,而无需输入新的发行版名称,方法是输入:wsl [command]。 将 [command] 替换为 WSL 命令,例如,替换为 wsl -l -v 以列出已安装的发行版,或 wsl pwd 以查看当前目录路径在 WSL 中的装载位置。 在 PowerShell 中,命令 get-date 将提供 Windows 文件系统中的日期,而 wsl date 将提供 Linux 文件系统中的日期。

选择的方法应取决于所执行的操作。 如果已在 Windows 提示符或 PowerShell 窗口中打开 WSL 命令行并想退出,请输入命令:exit

1.9 对于WSL的其他操作

1.9.1 换源

sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
sudo chmod 777 /etc/apt/sources.list
sudo vim /etc/apt/sources.list

在vim的命令模式下按d,可以删除内容
按 i 变成编辑模式,把下面内容复制粘贴进去
先按ESC退回到命令模式,输入 :wq 进行保存
添加阿里源:

deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse

然后更新包

sudo apt update
sudo apt upgrade

1.9.2导出和备份

如果想要进行文件迁移,则可以使用 wsl 提供的 import、export等工具
首先使用管理员身份打开命令提示符(cmd),关闭wsl

wsl --shutdown

查看是否关闭

wsl -l -v

导出子系统

wsl --export Ubuntu-18.04 E:\Ubuntu-18.04.tar

注销C盘中的WSL

wsl --unregister Ubuntu-18.04

检查是否注销

wsl -l -v

无对应WSL版本即为注销成功

导入新的WSL版本(导入到E盘为例)

wsl --import Ubuntu-18.04 E:\Ubuntu1804 E:\Ubuntu-18.04.tar

最后再检查一遍是否导入成功

wsl -l -v

1.9.3 通过WSL访问电脑中文件和识别外接USB存储设备

想在WSL中访问本机文件,输入以下命令:

cd /mnt/你的盘符

在进入到文件夹后,采用ls命令查看文件夹

继续用 cd打开文件夹就行

识别外接USB储存设备

在命令行中输入:

sudo mount -t drvfs 要导入USB储存设备的盘符:  /mnt/盘符
#例如
sudo mount -t drvfs G: /mnt/g

现在就可使用上方 cd /mnt/ 命令打开外接USB储存设备的文件了
结束上述步骤后,现在正式在WSL2中配置CUDA环境

2. 在WSL2中配置CUDA环境

前置任务,在WSL命令行中输入nvidia-smi查看显卡是否被WSL识别

nvidia-smi

如下图示,即为WSL识别到显卡

2.1 驱动的安装

在本机安装完NVIDIA驱动后,无需在WSL2中安装驱动,确保本机的驱动为最新,下载网址 https://developer.nvidia.com/cuda/wsl

2.2 安装cuda-toolkit(以CUDA11.3为例)

采用NVIDIA官网命令下载,选择如下选项:


安装代码如下:

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

安装好后,将变量添加到bashrc中

vim ~/.bashrc
export PATH=/usr/local/cuda/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PAT

同上VIM编辑器操作

source ~/.bashrc #运行一下

验证是否安装成功

nvcc -V 

2.3 安装MIniconda


# 切换到家目录
cd ~
# 下载miniconda
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
# 修改运行权限
chmod 777 Miniconda3-latest-Linux-x86_64.sh
# 运行安装脚本
./Miniconda3-latest-Linux-x86_64.sh
一直按回车,在需要输入yes的时候输入yes

添加环境变量


vim ~/.bashrc 
export PATH=/home/你的用户名/miniconda3/bin:$PATH 

关闭WSL重新打开就能看见base环境

2.4 在Conda中搭建python环境

安装pytorch

conda create --name torch python=3.8

激活环境

conda activate torch

安装pytorch

conda install pytorch torchvision torchaudio cudatoolkit=11.3 -c pytorch

验证是否能用GPU

python

import torch<br>torch.cuda.is_available()

如下图所示,显示True即为成功

3. 使用VScode在WSL中进行开发

3.1 下载安装VScode

通过官网下载,一般使用User Installer,建议使用64位。

3.2 安装VScode的WSL远程插件

我们希望能在Windows上的VScode,远程调试WSL里运行的程序,社区提供了Remote – WSL插件,实现VScode端无缝操作WSL。

3.3 在WSL 2启动VScode

通过Powershell登录WSL 2的Ubuntu环境,cd到你的目标程序目录,输入code .,就可以直接启动VScode,打开的目录也是目标程序所在目录:
或者在VScode中点击左下角远程图标,选择 New WSL Window 即可打开
随后安装好python插件等,即可在WSL进行开发

4.Conda中对于环境的操作

4.1 新建环境

conda create -n 环境名

4.2 删除环境

conda remove -n 环境名 --all

4.3 查看环境

conda info --envs

4.4 激活环境

conda activate 环境名

4.5 退出环境

conda deactivate 环境名

4.6 找不到base环境怎么办

source activate

4.7 使用yaml创建环境

conda env create -f environment.yml

原文作者:Hernandez
原文地址:https://hernandez-hkp.github.io/2023/01/04/wsl_cuda/

已有 2 条评论

歌曲封面
0:00