Windows11 配置指南(golang开发者)
1. 前言
将windows作为开放环境,对于开发人员并不友好(至少对于我这总习惯在unix下开发的人来说),其难用的powershell,让人很头疼,不过幸运的是Windows提供了WSL2,可以运行linux子系统。倘若能够用WSL作为开发环境,宿主Windows用作办公环境,就可以弥补只用linux作为主力环境下一些软件生态不足的缺点(有钱直接上mac)。这篇文章就是为那些,用windows下WSL2作为开发环境的人员提供的。
注意:开始前请确保你的系统支持wsl2
- 对于 x64 系统:版本 1903 或更高版本,采用内部版本 18362 或更高版本。
- 对于 ARM64 系统:版本 2004 或更高版本,采用内部版本 19041 或更高版本。
- 低于 18362 的版本不支持 WSL 2。
2. 宿主机Windows的配置
以下所涉及的所有命令均使用管理员身份运行(“开始”菜单 >“PowerShell”> 单击右键 >“以管理员身份运行”)
1. 启用WSL
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
2. 启用虚拟机功能
安装 WSL 2 之前,必须启用“虚拟机平台”可选功能。
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
重启计算机
3. 下载 Linux 内核更新包
-
下载最新包
-
运行上一步中下载的更新包。 (双击以运行 - 系统将提示你提供提升的权限,选择“是”以批准此安装。)
4. 将 WSL 2 设置为默认版本
wsl --set-default-version 2
5. 安装所选的 Linux 分发
打开应用商店选择一款Linux发行版(本教程使用Ubuntu)
首次启动新安装的 Linux 分发版时,将打开一个控制台窗口,系统会要求你等待一分钟或两分钟,以便文件解压缩并存储到电脑上。 未来的所有启动时间应不到一秒。
然后,需要为新的 Linux 分发版创建用户帐户和密码。
6. 下载vscode作为开发工具(可选)
推荐使用vscode是因为vscode提供了RemoteWSL插件,可以直接将WSL作为开发环境,并且vscode是免费的
7. windows terminal的美化(可选)
本教程不涉及过多美化,只有设置透明背景以及更换字体等简单操作。
打开windows terminal的配置文件(ctrl + ,), 找到// Put settings here that you want to apply to all
这句话,改成如下,下面涉及到的字体可以从这里下载到
"defaults":
{
// Put settings here that you want to apply to all profiles.
"acrylicOpacity": 0.85, // 背景透明度 0-1
"useAcrylic": true, // 背景模糊
"fontFace": "RobotoMono Nerd Font", // 字体
"cursorShape": "vintage", // 光标样式 "bar" ( ┃ )、"vintage" ( ▃ )、"underscore" ( ▁ )、"filledBox" ( █ )、"emptyBox" ( ▯ )
"antialiasingMode": "cleartype" // 抗锯齿
},
通过windows terminal打开的ubuntu默认的路径是你Windows的Home目录,可以将其修改为ubuntu的Home目录(如果你想这样做的话)
{
"guid": "{2c4de342-38b7-51cf-b940-2309a097f518}",
"hidden": false,
"name": "Ubuntu",
"source": "Windows.Terminal.Wsl",
"startingDirectory": "//wsl$/Ubuntu/home/kain" // 新增这一行,最后的名字改成你自己的用户名
}
3. 在WSL中配置开发环境
注意:本教程使用的是Ubuntu
1. 修改shell为zsh
sudo apt-get install zsh
chsh -s /bin/zsh
重新进入wsl,确保shell已经被换成zsh
2. 安装oh-my-zsh
- 先确保这几个命令已经被安装
sudo apt-get install git wget curl
- 安装ohmyzsh
sh -c "$(wget https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh -O -)"
- 安装两个常用插件
git clone git://github.com/zsh-users/zsh-autosuggestions.git ~/.oh-my-zsh/plugins/zsh-autosuggestions
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ~/.oh-my-zsh/plugins/zsh-syntax-highlighting
sed -i 's!plugins=(git)!plugins=(git sudo zsh-autosuggestions zsh-syntax-highlighting)!g' ~/.zshrc
- source
source ~/.zshrc
3. 安装docker
直接使用apt安装的docker可能版本较老,使用下面的过程可安装最新的docker
- 更新源&安装依赖
sudo apt-get update
sudo apt-get install apt-transport-https ca-certificates curl gnupg lsb-release
- 添加Docker官方的GPG密钥
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
- 添加apt仓库
echo \
"deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
- 安装docker
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io
- 将当前用户加入docker用户组
sudo gpasswd -a ${USER} docker
- 启停docker的命令
启动docker
sudo service docker start
停止docker
sudo service docker stop
重启docker
sudo service docker restart
4. 安装golang开发环境
直接使用apt安装的golang可能版本较老,使用下面的过程可安装最新的golang
- 从官方网站下载最新的golang安装包这里以1.17.7为例
wget https://golang.google.cn/dl/go1.17.7.linux-amd64.tar.gz
- 解压安装包
sudo tar -C /usr/local -xzf go1.17.7.linux-amd64.tar.gz
- 创建gopath目录(~/.go为例)
mkdir -p ~/.go
mkdir -p ~/.go/bin
mkdir -p ~/.go/src
mkdir -p ~/.go/pkg
- 加入环境变量
echo "export GOROOT=/usr/local/go" >> ~/.zshrc
echo "export GOPATH=~/.go" >> ~/.zshrc
echo "export GOBIN=~/.go/bin" >> ~/.zshrc
echo "export PATH=$PATH:$GOROOT/bin:$GOBIN" >> ~/.zshrc
source ~/.zshrc
- goproxy
go env -w GOPROXY=https://goproxy.io,direct
4. 结尾
我们完全不需要在windows宿主机中安装任何开发环境,所有的开发环境只需要安装在wsl中即可,windows中只需要一些常用的IDE,办公聊天软件。
注意宿主机通过vEthernet
这张网卡和WSL通信,宿主机和wsl拥有不同的两个IP
wsl命令参考:https://docs.microsoft.com/zh-cn/windows/wsl/basic-commands