本文将介绍安装 WSL2 并进行基础配置的方法,以及在其中复现之前博客工作流的完整过程。
近来学业繁忙,偶然想起我还有一个博客静静地躺在 GitHub 上,于是心血来潮,打算重启这个项目。奈何前段时间电脑坏了,重装了系统,正好借这个机会整理一下我的开发环境。
之前我一直在 Windows 环境下搞开发,弄得十分杂乱,各种配置和环境变量满天飞(确信)。后来有段时间尝试将 Arch Linux 作为主力系统,虽然 Linux 的开发体验很好,但是日常使用远没有 Windows 省心。再加上一些科研要用到的软件只支持 Windows,我不得不捏着鼻子重新投入 Windows 的怀抱。
后来偶然听朋友介绍了 WSL2,我说:“竟有此等好物?”于是忙里偷闲,在新系统上开始了本次尝试。
适用于 Linux 的 Windows 子系统(WSL)是 Windows 的一项功能,可用于在 Windows 计算机上运行 Linux 环境,而无需单独的虚拟机或双重启动。 WSL 旨在为想要同时使用 Windows 和 Linux 的开发人员提供无缝高效的体验。
我目前的想法是:将 Windows 作为主力系统日常使用,在 WSL2 的 Arch Linux 上做开发,各取所长。
安装并配置 WSL2#
当前我使用的操作系统是 Windows 11 26200.8246,整个安装流程十分丝滑。如果你使用的是 Windows 10 19041 或者更老的版本,可能需要参考微软官方文档进行手动安装。
安装 WSL2#
我决定安装 Arch Linux 发行版的 WSL,将其命名为 Arch,并将安装目录设置到 D:\10-WSL2\Arch。在 Windows 中打开 Powershell 并执行以下命令:
wsl.exe --install --distribution archlinux --name Arch --location D:\10-WSL2\Arch
可以通过命令
wsl.exe --list --online查询所有可在线下载的 Linux 发行版。
--location指定的安装目录必须为空或不存在,否则将会报错。
等待自动安装完成后,开始菜单里将会出现名为 Arch(即 --name 设置的值)的 Arch Linux 图标。打开它即可在命令行中运行 Arch Linux。
如果不指定
--distribution,WSL2 会默认安装 Ubuntu。但是 Arch Linux 是最好的 Linux 发行版喵~
初次启动与基础配置#
进入安装好的 Arch Linux,像常规配置 Arch Linux 系统那样进行配置就可以了。
设置 root 密码和创建普通用户#
passwd root # 设置root密码
useradd -m <username> # 例如:useradd -m dexter
passwd <username> # 设置上一步创建的普通用户的密码
配置 Pacman 包管理器、国内镜像源以及 ArchLinuxCN 源#
pacman -Syyu # 更新包数据库
pacman -S vi vim sudo # 安装必要工具
由于国内特殊的网络环境,需要配置一些镜像源以加快软件下载速度。打开 /etc/pacman.d/mirrorlist,将国内镜像源置顶。我比较常用的是以下几个:
Server = https://mirrors.ustc.edu.cn/archlinux/$repo/os/$arch
Server = https://mirrors.tuna.tsinghua.edu.cn/archlinux/$repo/os/$arch
Server = https://mirrors.aliyun.com/archlinux/$repo/os/$arch
然后是添加 ArchLinuxCN 源。在 /etc/pacman.conf 文件末尾添加以下几行:
[archlinuxcn]
SigLevel = Optional TrustAll
Server = https://mirrors.ustc.edu.cn/archlinuxcn/$arch
接着安装 archlinuxcn-keyring。
pacman -Syu
pacman -S archlinuxcn-keyring
为普通用户授予 sudo 权限#
usermod -aG wheel <username>
visudo
在打开的 /etc/sudoers 文件中,找到 %wheel ALL=(ALL:ALL) ALL,取消注释。
设置默认登录用户#
在 /etc/wsl.conf 中添加以下内容:
[user]
default=<username>
保存后重启 WSL 即可。

配置博客工作环境#
在之前的文章中,我使用了 Hugo + Blowfish 作为博客的架构。接下来,我们将在刚刚配置好的 WSL2 中完成相关配置。
使用 VS Code 远程连接 WSL2#
现在我们可以在 Windows 中使用 VS Code 无缝享受到 Arch Linux 的丝滑开发体验了。
- 进入 VS Code,按 Ctrl Alt O,选择“连接到 WSL”。
- 等待 VS Code 自动安装相应扩展。VS Code 会检测已安装的 WSL 环境,并启动一个新的窗口连接到你的 WSL 环境。
之后,我们可以直接使用 VS Code 像本地开发一样编辑文件和运行终端命令,所有操作将会在 WSL 中执行。
安装基础工具#
sudo pacman -S git base base-devel wget curl which net-tools openssh hugo
等待下载完成之后验证安装:
git version
hugo version
配置 Git 与 GitHub#
接下来,我们需要在 WSL2 环境中重新配置 Git 身份信息,并连接 GitHub 仓库。
配置 Git 用户名和邮箱#
git config --global user.name "你的 GitHub 用户名"
git config --global user.email "你的 GitHub 邮箱"
建立 SSH 连接#
生成 SSH 密钥对(一般不设置密码,一路回车即可):
ssh-keygen -t ed25519 -C "你的 GitHub 邮箱"输入以下指令,显示公钥的内容并复制。
cat ~/.ssh/id_ed25519.pub登录 GitHub,进入
Settings→SSH and GPG keys,点击New SSH key,将复制的公钥粘贴进去并保存,随便起一个名字。测试连接:
ssh -T git@github.com如果看到“successfully authenticated”的提示,说明已经成功建立连接。
克隆源代码仓库到 WSL2 本地#
在之前的文章中,我已经将源代码仓库上传到 GitHub 的私有仓库 BlogSource 中,现在将它重新克隆到本地。
cd ~/dev # 我希望将仓库放在 /home/dev 目录下
git clone git@github.com:derec30240/BlogSource.git
cd BlogSource
因为上一步已经配置好了 SSH 密钥,这里就使用 SSH 地址(而不是 HTTPS 地址)进行克隆。
这时所有的源代码已经被克隆到本地。如果你注意力惊人,就会发现/themes/blowfish 目录下没有文件。这是因为之前我们将 Blowfish 作为子模块导入到了项目中,所以我们还需要初始化并拉取所有子模块:
git submodule init
git submodule update --recursive
验证环境是否就绪#
执行以下命令检查一切是否正常:
hugo version
hugo server
如果一切正常,在浏览器中访问 http://localhost:1313 就可以看见之前创建的博客了。太棒了!
日常编辑与发布#
现在的编辑与发布流程和之前没什么区别。让我们复习一下:
创建新文章#
hugo new posts/文章名.md
不过为了方便管理文章中的图片等附件,我们一般会在 /content/posts 下新建一个以文章名命名的文件夹,再在该文件夹下创建 index.md 作为文章页面,并为其添加 Front Matter。结构如下:
content
└─ posts
├─ 文章名1
| └─ index.md
└─ 文章名2
└─ index.md
当然如果你不需要为文章添加附件,这种结构属实没必要。
我只是强迫症犯了
本地预览#
hugo server # 常规预览
hugo server -D # 预览包括草稿
生成静态文件并提交#
hugo # 生成静态文件
git add .
git commit -m "添加新文章"
git push origin main
GitHub Action 自动部署#
好消息是,我们并不需要做任何配置。写好的 /.github/workflows/*.yml 文件依旧会像以前一样自动触发。
现在开始,我们可以像之前一样继续愉快地写博客了喵~


