1. WSL2 安装
⚠️ 先决条件:Windows 10 版本需要 2004 及更高版本(内部版本 19041 及更高版本)或 Windows 11 才能使用以下命令。
1.1 🌟 新版安装
wsl --install
1.2 手动安装
- 以管理员身份打开 PowerShell(“开始”菜单 >“PowerShell” >单击右键 >“以管理员身份运行”),然后输入以下命令:
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
- 以管理员身份打开 PowerShell 并运行:
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
- ❗️重新启动计算机(必须)
- 下载内核并安装: 适用于 x64 计算机的 WSL2 Linux 内核更新包
- 打开 PowerShell,然后在安装新的 Linux 发行版时运行以下命令,将 WSL 2 设置为默认版本
wsl --set-default-version 2
- 打开 Microsoft Store,并下载喜欢的 Linux 分发版。- Ubuntu 18.04 LTS- Ubuntu 20.04 LTS- Ubuntu 22.04 LTS- Debian GNU/Linux- Fedora Remix for WSL
- 安装完成后在 Microsoft Store 打开安装的系统,首次启动新安装的 Linux 分发版时,将打开一个控制台窗口,系统会要求你等待一分钟或两分钟,以便文件解压缩并存储到电脑上。 未来的所有启动时间应不到一秒。
- 然后,需要为 Linux 分发版创建用户帐户和密码。
- 之后在 cmd 或 Powershell 中输入 wsl 即可打开 WSL(直接 Windows + R,输入
wsl
即可运行 WSL2)。
2. 优化
2.1 更改 WSL 所在路径
安装完 WSL 后,默认是在 C 盘下的,一般来说系统盘的容量通常来说是有限的,需要更改安装目录。
- 查看 WSL 的运行状态:
wsl -l-v
- 确保 WSL 处于关闭状态(Stopped),如果是 Running,则需要关闭:
wsl --shutdown
之后再次查询 WSL 状态 - 导出当前的 Linux 系统镜像:
wsl --export Ubuntu-20.04 f:\image_ubuntu20.04.tar
之后会在 F 盘中有一个大小为 1.2G 的image_ubuntu20.04.tar
文件 - 移除之前注册的 WSL:
wsl --unregister Ubuntu-20.04
- 再次输入查看 WSL 的运行状态:
wsl -l-v``````适用于 Linux 的 Windows 子系统没有已安装的分发版。可以通过访问 Microsoft Store 来安装分发版:https://aka.ms/wslstore
这样说明我们取消注册成功了 - 我们重新注册 WSL:
wsl --import Ubuntu-20.04 f:\WSL-Ubuntu-20.04 f:\image_ubuntu20.04.tar
- 重新查看 WSL 状态:
wsl -l-v``````NAME STATE VERSION* Ubuntu-20.04 Stopped 2
此时,我们的 WSL 就已经移动完成了!
💡 注意:
- 移动完成后不需要重新设置密码了
image_ubuntu20.04.tar
这个文件可以删除掉了WSL-Ubuntu-20.04/
这个文件夹就是 WSL2 的系统盘,不要删除!
2.2 修改默认账号
如果移动完毕后默认账号是
root
,我们可以修改默认账号为我们自己的账号。
# 1. 编辑 wsl.conf 文件vim /etc/wsl.conf
# 2. 添加下面内容[user]default=我们之前设置的账号名
# 3. 关闭 wsl
wsl --shutdown# 4. 打开 wsl
wsl
此时 wsl 默认使用的是账户名就是我们之前的账号名了。
💡 不会使用
vim
则可以使用
notepad.exe
。
3. WSL2 首次配置
3.1 更新软件包
安装完 WSL2 之后,我们就可以理解为它就是一个全新的系统,所以我们首先需要更新软件包:
sudoapt update
3.2 配置 Anaconda
3.2.1 安装 Anaconda
# 1. 先 cd 到根目录下cd# 2. 下载安装包:在此地址 https://www.anaconda.com/download/success 中找到安装包的链接wget https://repo.anaconda.com/archive/Anaconda3-2024.02-1-Linux-x86_64.sh
# 3. 安装 anacondabash Anaconda3-2024.02-1-Linux-x86_64.sh
# 4. 按照 anaconda 提示进行安装,默认安装到 /home/用户名/anaconda3
3.2.2 设置 Anaconda 环境变量
# 1. 打开系统环境变量文件vim ~/.bashrc
# 2. 添加 Anaconda 环境变量exportPATH="/home/用户名/anaconda3/bin:$PATH"# 3. (可选)设置 Anaconda 快捷键aliasact='conda activate'aliasdeact='conda deactivate'# 4. 更新环境变量source ~/.bashrc
# 5. 验证是否添加完成
conda --version
得到下面的结果:
conda 24.1.2
此时,Anaconda 就已经安装好了!
💡 Tips:
- 嫌弃
wget
下载慢的话,可以直接在 Windows 上下载 Anaconda(注意是 Linux 版本,即64-Bit (x86) Installer (997.2M)
),之后cd
到下载目录,安装即可🤗 - 安装 Anaconda 时,协议太长了可以按 q 跳过(反正你也不看🤭)
- Anaconda 安装可能会很慢,耐心一点
- 在执行打开环境变量文件时,如果说没有找到
~/.bashrc
,请直接cd
到/
后再执行 - 在设置 Anaconda 环境变量路径时,
/home/WSL用户名/
就是你 Anaconda 安装的位置。比如我直接安装在了/home
下,所以就是export PATH="/home/anaconda3/bin:$PATH"
3.3 创建 Anaconda 虚拟环境
因为 WSL2 是一个新系统,所以我们需要重新创建环境。
3.3.1 创建虚拟环境
# 创建虚拟环境
conda create -n 虚拟环境名称 python=3.10
创建过程示例如下:
(base) leovin@DESKTOP-XXXXX:~$ conda create -n dl python=3.10
Channels:
- defaults
Platform: linux-64
Collecting package metadata (repodata.json): done
Solving environment: done
## Package Plan ##
environment location: /home/leovin/anaconda3/envs/dl
added / updated specs:
- python=3.10
The following packages will be downloaded:
package | build
---------------------------|-----------------
bzip2-1.0.8 | h5eee18b_5 262 KB
ca-certificates-2024.3.11 | h06a4308_0 127 KB
pip-23.3.1 | py310h06a4308_0 2.7 MB
python-3.10.14 | h955ad1f_0 26.8 MB
setuptools-68.2.2 | py310h06a4308_0 957 KB
tzdata-2024a | h04d1e81_0 116 KB
wheel-0.41.2 | py310h06a4308_0 109 KB
xz-5.4.6 | h5eee18b_0 651 KB
------------------------------------------------------------
Total: 31.7 MB
The following NEW packages will be INSTALLED:
_libgcc_mutex pkgs/main/linux-64::_libgcc_mutex-0.1-main
_openmp_mutex pkgs/main/linux-64::_openmp_mutex-5.1-1_gnu
bzip2 pkgs/main/linux-64::bzip2-1.0.8-h5eee18b_5
ca-certificates pkgs/main/linux-64::ca-certificates-2024.3.11-h06a4308_0
ld_impl_linux-64 pkgs/main/linux-64::ld_impl_linux-64-2.38-h1181459_1
libffi pkgs/main/linux-64::libffi-3.4.4-h6a678d5_0
libgcc-ng pkgs/main/linux-64::libgcc-ng-11.2.0-h1234567_1
libgomp pkgs/main/linux-64::libgomp-11.2.0-h1234567_1
libstdcxx-ng pkgs/main/linux-64::libstdcxx-ng-11.2.0-h1234567_1
libuuid pkgs/main/linux-64::libuuid-1.41.5-h5eee18b_0
ncurses pkgs/main/linux-64::ncurses-6.4-h6a678d5_0
openssl pkgs/main/linux-64::openssl-3.0.13-h7f8727e_0
pip pkgs/main/linux-64::pip-23.3.1-py310h06a4308_0
python pkgs/main/linux-64::python-3.10.14-h955ad1f_0
readline pkgs/main/linux-64::readline-8.2-h5eee18b_0
setuptools pkgs/main/linux-64::setuptools-68.2.2-py310h06a4308_0
sqlite pkgs/main/linux-64::sqlite-3.41.2-h5eee18b_0
tk pkgs/main/linux-64::tk-8.6.12-h1ccaba5_0
tzdata pkgs/main/noarch::tzdata-2024a-h04d1e81_0
wheel pkgs/main/linux-64::wheel-0.41.2-py310h06a4308_0
xz pkgs/main/linux-64::xz-5.4.6-h5eee18b_0
zlib pkgs/main/linux-64::zlib-1.2.13-h5eee18b_0
Proceed ([y]/n)? y
Downloading and Extracting Packages:
Preparing transaction: done
Verifying transaction: done
Executing transaction: done
#
# To activate this environment, use
#
# $ conda activate dl
#
# To deactivate an active environment, use
#
# $ conda deactivate
3.3.2 激活虚拟环境以及安装第三方库
# 1. 激活环境(💡 如果在 ~/.bashrc 中添加了快捷键,那么可以使用 act 代替 conda activate)
act 虚拟环境名称
# 2. 安装第三方库(-i https://pypi.tuna.tsinghua.edu.cn/simple 的目的是换源,可以加快下载速度)
pip install 第三方库的名称 -i https://pypi.tuna.tsinghua.edu.cn/simple
4. 安装 PyTorch
4.1 查看 CUDA 版本
# 查看显卡状态
nvidia-smi
示例如下:
(dl) leovin@DESKTOP-XXXX:~$ nvidia-smi
Sat Apr 27 23:16:39 2024
+-----------------------------------------------------------------------------------------+
| NVIDIA-SMI 550.76.01 Driver Version: 552.22 CUDA Version: 12.4 |
|-----------------------------------------+------------------------+----------------------+
| GPU Name Persistence-M | Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap | Memory-Usage | GPU-Util Compute M. |
| | | MIG M. |
|=========================================+========================+======================|
| 0 NVIDIA GeForce RTX 3070 On | 00000000:01:00.0 On | N/A |
| 0% 47C P8 15W / 240W | 1258MiB / 8192MiB | 8% Default |
| | | N/A |
+-----------------------------------------+------------------------+----------------------+
+-----------------------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=========================================================================================|
| No running processes found |
+-----------------------------------------------------------------------------------------+
4.2 在 PyTorch 官网找到相应的安装命令
💡 Tips:
- PyTorch 官网链接
- 请安装对应 CUDA 版本的 PyTorch,如果 CUDA 版本大于 PyTorch 支持的最大版本,则选择最大版本。比如我的 CUDA 版本是 12.4,但截止 2024/04/27,PyTorch 支持的最大 CUDA 版本为 12.1,那么则选择 12.1 进行安装
- 如果没有 GPU,则安装 CPU 版本
# 这里添加 -i 是为了加速其他第三方包的下载速度
pip3 install torch torchvision torchaudio -i https://pypi.tuna.tsinghua.edu.cn/simple
4.3 测试 PyTorch 是否可用
# 1. 打开 Python
python
# 2. 导入 PyTorchimport torch
# 3. 查看 PyTorch 版本
print(torch.__version__)# 4. 查看 CUDA 是否可用(💡 如果安装的是 CPU 版本则不用运行)
print(f"{torch.cuda.is_available() = }")
示例结果如下:
(dl) leovin@DESKTOP-XXXX:~$ python
Python 3.10.14 (main, Mar 212024, 16:24:04)[GCC 11.2.0] on linux
Type "help", "copyright", "credits" or "license"formore information.
>>>import torch
>>> print(torch.__version__)2.3.0+cu121
>>> print(f"{torch.cuda.is_available() = }")
torch.cuda.is_available()= True
4. 使用 VSCode 打开 WSL2
4.1 方式1
直接在我们想要打开的文件夹下,Shift + 右键,选择 在此处打开 Linux shell(L),之后在打开的终端输入
code ./
即可。或者直接在 WSL2 终端中输出
code ./
,之后手动再次选择文件夹也可以。
# 使用 VSCode 打开当前路径的📂文件夹
code ./
Installing VS Code Server for x64 (f1b07bd25dfad64b0167beb15359ae573aecd2cc)
Downloading: 100%
Unpacking: 100%
Unpacked 1608 files and folders to /root/.vscode-server/bin/xxxxxxxxxxxxxxxxxxxxx
这里是提示我们要安装 VSCode,等待安装完毕即可。
4.2 方式2
当我们安装好 WSL2 后,可以在 VSCode 中搜索 WSL 插件,安装完毕后即可在 VSCode 中远程链接 WSL2 了(和 SSH 远程链接服务器差不多)。
5. WSL2 和 Windows 共享 Proxy
- 打开 Allow LAN(允许局域网)
- 打开环境变量
cdnotepad.exe .bashrc
- 添加语句:
hostip=$(cat /etc/resolv.conf |grep-oP'(?<=nameserver\ ).*')exporthttps_proxy="http://${hostip}:7890"exporthttp_proxy="http://${hostip}:7890"exportall_proxy="socks5://${hostip}:7890"
此处需要注意的是,7890
是你设置的端口号,可以在 Proxy 软件中的port
中设置 - 更新环境变量
source .bashrc
- 可以通过
ping
命令来进行测试
Note
- 如果之后失效了,关闭 Allow LAN(允许局域网) 再打开就可以了。
知识来源
- 旧版 WSL 的手动安装步骤
- WSL2 修改安装目录
版权归原作者 Le0v1n 所有, 如有侵权,请联系我们删除。