前言
Windows Subsystem for Linux (WSL) 是一种在 Windows 系统中运行 Linux 环境的轻量级解决方案,分为 WSL 1 和 WSL 2 两个版本。关于两者的区别,WSL 2 基于 Hyper-V 虚拟化技术,支持 Docker 和 WSLg(原生图形界面支持),通常在性能上优于 WSL 1(跨文件系统性能除外)。相比之下,WSL 1 不依赖 Hyper-V,不支持 Docker 和原生图形界面,性能略逊,但资源占用更低,适合轻量级任务或不支持 Hyper-V 的环境(如嵌套虚拟化场景)。更多详细信息可参考 微软官方文档。
参考个人需求后,我选择使用 WSL 1。本教程将详细介绍如何在 Windows 上手动安装 WSL 1,配置 Ubuntu 环境,包括软件源更新、图形界面支持、中文支持以及开发环境配置。
本教程假定你已经熟悉 Windows 和 Linux 的基础知识。
手动安装 WSL 1
以下是安装 WSL 1 的详细步骤,参考 微软官方文档:旧版 WSL 手动安装。
1. 启用 WSL 功能
- 以管理员身份打开 PowerShell:
- 按
Win + S
,搜索PowerShell
,右键选择“以管理员身份运行”。
- 按
- 启用 WSL:
执行以下命令以启用 WSL 功能:dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
/norestart
表示暂不重启,稍后统一重启。
- (可选)启用虚拟机平台:
如果未来可能切换到 WSL 2,可启用虚拟机平台:dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
2. 重启计算机
运行上述命令后,重启计算机以应用更改:
Restart-Computer
3. 设置 WSL 1 为默认版本
确保新安装的 Linux 发行版默认使用 WSL 1:
wsl --set-default-version 1
4. 安装 Ubuntu
- 通过 Microsoft Store 安装:
- 打开 Microsoft Store,搜索“Ubuntu”(推荐选择最新版本,如 Ubuntu 22.04)。
- 点击“获取”或“安装”按钮,下载并安装。
- 初始化 Ubuntu:
- 安装完成后,在“开始”菜单找到 Ubuntu,点击启动。
- 首次启动会进入安装流程,提示设置 Linux 用户名和密码,按照指示完成配置。
为 Ubuntu 配置国内软件源并更新系统
为了加快软件包下载速度,建议将 Ubuntu 的软件源更换为国内镜像(如清华大学 TUNA 镜像)。
- 编辑软件源配置文件:
在 Ubuntu 终端中,编辑/etc/apt/sources.list
:sudo nano /etc/apt/sources.list
- 将文件中所有
archive.ubuntu.com
替换为mirrors.tuna.tsinghua.edu.cn
。 - 保存(
Ctrl+O
,回车),退出(Ctrl+X
)。
- 将文件中所有
- 更新系统:
执行以下命令更新软件源并升级系统:sudo apt update && sudo apt upgrade -y
为 Ubuntu 添加图形界面支持
WSL 1 不支持 WSLg(原生图形界面),因此需要手动配置 X Server 来支持图形界面。
1. 安装桌面环境
安装 Ubuntu 桌面环境(可能耗时较长):
sudo apt install ubuntu-desktop -y
2. 配置 X Server
- 设置 DISPLAY 环境变量:
在 Ubuntu 终端中,设置 X Server 的输出端:
为确保每次启动生效,编辑export DISPLAY=localhost:0
/etc/profile
:
在文件末尾添加:sudo nano /etc/profile
保存并退出。export DISPLAY=localhost:0
- 安装 VcXsrv(Windows X Server):
- 在 Windows 中,下载并安装 VcXsrv。
- 安装完成后,启动“XLaunch”程序(位于“开始”菜单)。
- 使用默认配置,一路点击“下一步”并完成设置。
- 启动后,Windows 右下角任务栏托盘会显示 XLaunch 图标。
- 测试图形界面:
在 Ubuntu 终端中运行:
如果配置正确,gedit 编辑器将以窗口形式打开,体验与 Windows 原生程序类似。gedit
为 Ubuntu 添加中文支持
WSL 1 存在一个已知的字符映射文件解析问题,需要手动处理以确保中文支持正常工作。
1. 修复字符映射文件
- 定位 Linux 文件系统:
- 在 Windows 文件资源管理器中,找到 WSL 的文件系统(通常在侧边栏或路径
%userprofile%\AppData\Local\Docker\wsl\data
)。 - 导航到
/usr/share/i18n/charmaps/
,找到UTF-8.gz
文件。
- 在 Windows 文件资源管理器中,找到 WSL 的文件系统(通常在侧边栏或路径
- 解压并替换:
- 将
UTF-8.gz
复制到 Windows 中,使用解压软件(如 7-Zip)解压出UTF-8
文件(确保是文件而非文件夹)。 - 将解压后的
UTF-8
文件复制回/usr/share/i18n/charmaps/
,覆盖原文件。
- 将
2. 安装中文支持
安装中文语言包、中文字体和输入法:
sudo apt install language-pack-zh-hans fonts-wqy-microhei dbus-x11 im-config fcitx fcitx-pinyin -y
3. 配置语言环境
- 启用中文 Locale:
编辑/etc/locale.gen
:
找到sudo nano /etc/locale.gen
zh_CN.UTF-8 UTF-8
,取消前面的注释符号(#
),保存退出。 - 生成 Locale 数据:
sudo locale-gen
- 设置环境变量:
编辑/etc/profile
:
在文件末尾添加:sudo nano /etc/profile
保存退出。export LANG=zh_CN.UTF-8 export LANGUAGE=zh_CN.UTF-8 export LC_ALL=zh_CN.UTF-8 export INPUT_METHOD=fcitx export XMODIFIERS=@im=fcitx export GTK_IM_MODULE=fcitx
- 应用配置:
source /etc/profile
4. 配置输入法
- 移除干扰输入法:
删除可能干扰 Fcitx 的 IBus 输入法:sudo apt remove ibus -y
- 自动启动 Fcitx:
fcitx-autostart
5. 重启 WSL
在 PowerShell 中重启 WSL:
wsl --shutdown
然后重新启动 Ubuntu,中文支持和输入法即可生效。
配置开发环境
WSL 1 的开发环境配置与标准 Linux 系统类似,许多开发工具(如 Visual Studio Code)已支持 WSL。例如,安装 VS Code 的 Remote - WSL 扩展,即可直接在 WSL 环境中进行开发。
其他开发工具(如 Node.js、Python、Git 等)的安装与配置可参考其官方文档。以下是一个简单的示例,安装 Node.js:
sudo apt install nodejs npm -y
注意事项与常见问题
- Microsoft Store 无法访问:
- 如果无法访问 Microsoft Store,可手动下载 Ubuntu 的
.appx
文件(参考 Ubuntu WSL 下载),然后在 PowerShell 中运行:Add-AppxPackage -Path "C:\路径\到\Ubuntu.appx"
- 如果无法访问 Microsoft Store,可手动下载 Ubuntu 的
- 图形界面启动失败:
- 确保 VcXsrv 正在运行,且
DISPLAY
变量正确设置。 - 检查 Windows 防火墙是否阻止了 XLaunch 的网络连接。
- 确保 VcXsrv 正在运行,且
- 性能问题:
- WSL 1 的文件系统性能可能不如 WSL 2,建议将项目文件存储在 Linux 文件系统(
/home/用户名
)而非 Windows 文件系统(/mnt/c
)。
- WSL 1 的文件系统性能可能不如 WSL 2,建议将项目文件存储在 Linux 文件系统(
- 嵌套虚拟化:
- 如果在 VMware 或其他虚拟机中运行 WSL 1,无需启用嵌套虚拟化,WSL 1 兼容性更好。若需 WSL 2,需确保虚拟机和主机支持嵌套虚拟化。