参考资料 安装 WSL - Microsoft Learn | WSL (Windows 10) - OI Wiki 加入必坑指南与图文教程

简介

WSL 是从 Windows 10 2004 开始支持的,Microsoft 官方支持的适用于 Linux 的 Windows 子系统 (Windows Subsystem for Linux),开发人员可以安装 Linux 发行版 (例如 Ubuntu、OpenSUSE、Kali、Debian、Arch Linux 等),并直接在 Windows 上使用 Linux 应用程序。可以参阅 WSL 的官方文档

与传统的虚拟机启动或双系统启动方式相比,由官方支持的 WSL 不仅配置方便,而且无需承担传统方式带来的巨大开销。

自动安装

后面将介绍自动安装和手动安装,两种方式选一即可,建议优先尝试使用自动安装,此处我们以安装 Ubuntu 为例。

打开 Powershell 并且执行下面的命令,一键完成安装。

1
2
wsl --install -d Ubuntu
# wsl --list --online # 查看所有可安装的最新发行版本

进入 wsl 系统只需打开 Powershell 运行 wsl 即可。

为什么我安装失败

我总结的常见安装失败原因有三:

  • 挂 V 可能导致无法继续下载,如果挂着尝试关闭后重试。手动安装失败也可能是这个原因导致的。
  • 禁用 Windows 更新可能导致部分服务不可用,请打开 Windows 更新。手动安装失败也可能是这个原因导致的。
  • 以上两种情况对于自动安装和手动安装都是一样的,但我遇到的一种情况是单纯的自动安装不可用,原因未知,尝试手动安装。

手动安装

启用相关 Windows 功能

在搜索框找到 Windows 功能,或者找到 控制面板 - 程序 - 启用或关闭 Windows 功能,启用 适用于 Windows 的 Linux 子系统虚拟机平台,这可能需要重启计算机,按照指示即可。

设置 WSL 默认版本

WSL 2 比 WSL 1 使用起来更方便 (我也不是很懂),同样是在 Powershell 中执行命令。

1
2
# 将 WSL 默认版本设置为 WSL 2
wsl --set-default-version 2

安装 WSL 发行版

打开 Microsoft Store,搜索 Ubuntu 并安装,耐心等待安装完成即可。

按照引导设置初始用户用户名和密码。此时已经安装完成,可以在开始菜单中找到 Ubuntu,可以直接运行,而且打开速度是秒级别的。

国内设置

更换国内软件源

这里我选择使用 清华源 Ubuntu 软件仓库镜像

使用 sudo lsb_release -a 查看 Ubuntu 版本,选择你的 Ubuntu 版本并复制文本框的内容。

使用下面的命令更新软件源:

1
2
3
4
5
6
7
8
9
$ sudo su  # 执行这行指令后,进入 root 用户
[sudo] xxx 的密码:
$ cp /etc/apt/sources.list /etc/apt/sources.list.bak # 备份原文件
$ echo > /etc/apt/sources.list # 清空原文件
$ vim /etc/apt/sources.list # 如未安装使用 apt install vim 安装
... # (按 i 之后将复制的文本右键粘贴进去,编辑完后按 Esc,再输入 :wq 和回车)
$ apt update
$ apt upgrade -y
$ exit # 退出 root 用户

安装中文环境

1
2
3
4
5
6
7
$ sudo su  # 执行这行指令后,进入 root 用户
[sudo] xxx 的密码:
$ apt install language-pack-zh-hans
$ apt install fontconfig
$ apt install fonts-noto-cjk fonts-wqy-microhei fonts-wqy-zenhei
$ dpkg-reconfigure locales # 进入命令行图形界面
$ exit # 退出 root 用户

进入命令行图形界面时,第一个界面直接回车即可,第二个界面选中 zh_CN.UTF-8 后回车。重启 WSL 生效。

安装中文帮助文档

1
$ sudo apt install manpages-zh  # 完成后使用 man man 测试中文文档, 也有一些未翻译的文档如 tree
避坑指南

有些帮助会教你再执行一行命令以强制查看中文帮助,这样做会导致一些未被翻译的文档无法查看,原本未被翻译的文档会使用默认语言。

1
2
3
4
5
6
# 错误示例 !!!
$ man gcc
... # 英文文档
$ sudo sed -i 's|/usr/share/man|/usr/share/man/zh_CN|g' /etc/manpath.config
$ man gcc
没有 gcc 的手册页条目

如果你已经执行了该命令,请再执行一次下面的命令,撤销原有影响,最好将原文件 /etc/manpath.config 备份一份。

1
2
3
$ cp /etc/manpath.config /etc/manpath.config.zh_CN.bak  # 备份
$ sudo sed -i 's|/usr/share/man/zh_CN|/usr/share/man|g' /etc/manpath.config
# 将所有 /usr/share/man/zh_CN 替换为 /usr/share/man