背景
这几天想在家里处理公司代码,就开始按照公司文档搭建开发环境,但无奈家里台式机使用的是 Windows 系统,平时娱乐打游戏、看电影、追剧什么的也要用,不方便重装成 Linux 系统。本来想用大学淘汰下来的笔记本,结果让我哥拿去用了,在论坛上问大神解决方案,总结下来有三种方案:1. 双系统:两块硬盘,分别安装 Linux、windows。2. WSL 2:Windows 官方提供的 Linux 虚拟机。3. 直接使用虚拟机。三种方案中,我选择了 WSL2 方案,没有特殊原因,就是想单纯折腾一下。
通过这篇文章,我希望能整理、记录自己折腾的过程,也希望能为他人提供一点参考价值。
前言:这篇文章不会手把手带着实操,笔者觉得复述这些没有价值,官网比我权威且详细,这里选择的是直接贴上链接,供点击查看。文章更偏重补全流程,新手能跟着文章本地运行起来 WSL2 就是最终目的。
流程
前置要求:
- 必须运行 Windows 10 版本 2004 及更高版本
- 必须启动虚拟化。参考:Windows 10 上启用 Hyper-V、在Windows 11电脑上启用虚拟化 - Microsoft 支持
安装:
使用管理员模式下打开 PowerShell 或 Windows 命令提示符,输入以下命令:
// 默认安装 ubuntu 最新发布版。安装其他版本参考:[更改默认安装的 Linux 发行版](https://learn.microsoft.com/zh-cn/windows/wsl/install#change-the-default-linux-distribution-installed)
wsl --install
安装完成后,进入系统设置用户名、密码:设置用户名、密码
初始化 Linux 环境:
// 更新和升级包
sudo apt update && sudo apt upgrade
// 设置时区
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
设置 Windows Terminal,从 Microsoft Store 下载 Windows Terminal 作为安装的 Linux 子系统访问终端。
划分文件存储:尽可能避免 Linux 与 Windows 文件交互。Linux 会用到的放到 Linux 目录下,Windows 会用到的文件放到 Windows 目录下。
配置开发环境:
- 设置 VSCode WSL 远程窗口,使用 Windows 中 VSCode 访问 Linux 子系统中项目。可参考:通过 WSL 使用 VS Code
- 设置 Git
- Windows 安装 Windows Git Bash。
- Liunx 子系统一般默认安装 Git。
- 数据库配置: 见 使用 WSL 添加或连接数据库 | Microsoft Learn
- 设置 Docker
- 方案一:Linux 直接安装 docker
- 方案二:Wsl 运行远程 Docker 容器(wsl 运行 Windows 上 Docker Desktop)。见WSL 上的 Docker 容器入门 | Microsoft Learn
- 设置 GPU 加速:WSL 中的 GPU 加速 ML 训练 | Microsoft Learn
// 安装中文 locale
sudo apt-get install language-pack-zh-hans
// 设置全局 locale
vim /etc/defalut/locale 设置为 LANG=en_US.UTF-8
// 配置中文 locale
vim /etc/environment 添加
LANG="zh_CN.UTF-8"
LANGUAGE="zh_CN:zh:en_US:en"
// 执行 locale-gen
sudo locale-gen
// 安装中文字体
sudo apt-get install fonts-droid-fallback ttf-wqy-zenhei ttf-wqy-microhei fonts-arphic-ukai fonts-arphic-uming
// 配置中文字体
无
设置网络模式:
默认为 NAT 模式,不支持 Windows 端代理共享到 WSL2 容器中,建议设置为镜像模式,可以实现 wsl2 与 windows 共享同一网络命名空间(共用 IP、端口)。可参考设置网络镜像模式。
有用知识点
WSL、Windows 跨文件系统交互
- wsl 访问 windows 文件:
- wsl 只能访问已挂载的 Windows 文件,wsl 默认挂载
c/、/c/User,可通过mnt/c/Users、mnt/c路径直接访问。
- wsl 只能访问已挂载的 Windows 文件,wsl 默认挂载
- winodws 访问 wsl 文件:
- windows 在资源浏览器中输入
\\$wsl可访问所有 Linux 子系统。实际存储位置为%userprofile%\AppData\Local\Packages\Canonical...\LocalState\ext4.vhdx,ext4.vhdx 就是虚拟磁盘文件。
- windows 在资源浏览器中输入
- 环境变量共享
- 默认 Linux 子系统共享 Windows 的 path 系统变量。
- Windows 17063 版本后开始支持
WSLENV双向共享系统变量。
- Windows 与 Linux 之间命令共享。
- windows Terminal 可以通过
wsl <command>,在 windows Terminal 执行 Linux 命令。 - linux 子系统中通过
[tool-name].exe可以直接启动 windows 工具。
- windows Terminal 可以通过