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 內核更新包

  1. 下載最新包

  2. 運行上一步中下載的更新包。 (雙擊以運行 - 系統將提示你提供提升的權限,選擇“是”以批准此安裝。)

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

  1. 先確保這幾個命令已經被安裝
sudo apt-get install git wget curl
  1. 安裝ohmyzsh
sh -c "$(wget https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh -O -)"
  1. 安裝兩個常用插件
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
  1. source
source ~/.zshrc

3. 安裝docker

直接使用apt安裝的docker可能版本較老,使用下面的過程可安裝最新的docker

  1. 更新源&安裝依賴
sudo apt-get update
sudo apt-get install apt-transport-https ca-certificates curl gnupg lsb-release
  1. 添加Docker官方的GPG密鑰
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
  1. 添加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
  1. 安裝docker
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io
  1. 將當前用戶加入docker用戶組
sudo gpasswd -a ${USER} docker
  1. 啟停docker的命令

啟動docker

sudo service docker start

停止docker

sudo service docker stop

重啟docker

sudo service docker restart

4. 安裝golang開發環境

直接使用apt安裝的golang可能版本較老,使用下面的過程可安裝最新的golang

  1. 官方網站下載最新的golang安裝包這里以1.17.7為例
wget https://golang.google.cn/dl/go1.17.7.linux-amd64.tar.gz
  1. 解壓安裝包
sudo tar -C /usr/local -xzf go1.17.7.linux-amd64.tar.gz
  1. 創建gopath目錄(~/.go為例)
mkdir -p ~/.go
mkdir -p ~/.go/bin
mkdir -p ~/.go/src
mkdir -p ~/.go/pkg
  1. 加入環境變量
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
  1. 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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM