Appearance
WSL 2
安装
参考官方文档的 旧版 WSL 的手动安装步骤。 这样可以选择需要安装的组件和 linux 版本,同时出现安装问题的可能性也更低。
导入和导出
将当前的发行版导出到 tar 文件
wsl --export <Distribution Name> <FileName>
将备份的 tar 文件恢复到发行版,会在 InstallLocation 位置生成硬盘映像文件。
wsl --import <Distribution Name> <InstallLocation> <FileName>
设置过程
记录设置 wsl 的过程, 然后导出为镜像, 方便一键导入.
- 更新软件
sudo apt update && sudo apt upgrade -y
- 安装 oh my zsh
- 使用 vscode 打开 wsl
- 删除 bash 和无关内容
rm .bash* .profile .zshrc.pre-oh-my-zsh .motd_shown
- git 设置
- ssh key 生成
ssh-keygen -t ed25519 -C "hi@hyoban.cc"
记得加到需要登入的位置(如果已有直接复制,修改权限即可) git config --global user.name "hyoban"
git config --global user.email "hi@hyoban.cc"
git config --global init.defaultBranch main
git config --global core.autocrlf true
- 安装 GitHub cli 便于参与开源项目
gh auth login
(也可以复制此前的 .config/gh)
- ssh key 生成
- node 环境
- nvm
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash
nvm install --lts
corepack enable
npm i --location=global @antfu/ni
npm login
登录 npm(也可以复制此前的 .npmrc)
- nvm
- golang 环境
wsl 配置
默认登录用户
导入的发行版会以 root 用户作为登录名,这不是我们想要的。 具体讨论请看 Impossible to set default user of distribution installed via wsl --import on 1903。 我们不能以对导入的发行版以名称作为命令,再参考官方文档中更改发行版的默认用户的方式进行配置。
解决办法如下,以 root 用户登录之后,新建 /etc/wsl.conf
文件,填入以下内容就可以以指定的用户名登录。
[user]
default=hyoban
wsl.conf 配置文件针对单一分发版,如果想要创建通用的配置文件,请在用户目录下创建 .wslconfig 文件。 不过需要注意,它仅仅适用于 wsl2 版本。
systemd
参考 Systemd support is now available in WSL!,在 /etc/wsl.conf
中填上如下内容:
[boot]
systemd=true
如此,像 nginx 之类的服务可以在 wsl 开启时自动启动,安装使用 docker 的体验也变得更加友好。
WARNING
在安装完,请务必使用 wsl --update
更新到最新版本,否则 systemd 还未支持。
Docker
你可以参照官方说明直接安装。
sh
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io docker-compose-plugin -y
# Got permission denied ... /var/run/docker.sock: connect: permission denied
sudo usermod -aG docker $USER
对于 Docker Desktop 的使用,我们完全可以使用 WSL 的环境。 只是对于 128G 主硬盘的我,时刻需要关系硬盘空间的问题,参考 将 Docker Desktop(WSL 2 方式)文件存储移出系统盘。