GO开发环境搭建

下载安装

阿里云盘

https://www.alipan.com/s/ztTaPkk1in6

官方地址

All releases - The Go Programming Language

配置环境变量

Windows 上用管理员身份打开 PowerShell

  1. 按下 Win+X 组合键,弹出快速访问菜单。
  2. 选择 Windows PowerShell(管理员)

运行命令

# ---------------------- 配置参数(修改为你的实际路径)----------------------
$targetGOROOT = "D:\program\Go"  # Go安装根目录
$targetGOPATH = "D:\gospace"       # Go工作区目录
$envScope = "User"             # 环境变量作用域:Machine=系统环境变量(所有用户生效),User=用户环境变量(仅当前用户)
# -------------------------------------------------------------------------

# --------------- 步骤1:校验并配置GOROOT(避免重复/无效更新)---------------
Write-Host "正在校验并配置GOROOT..." -ForegroundColor Cyan
$currentGOROOT = [Environment]::GetEnvironmentVariable("GOROOT", $envScope)
if ($currentGOROOT -eq $targetGOROOT) {
    Write-Host "GOROOT已配置为目标路径:$targetGOROOT,无需更新。" -ForegroundColor Green
} else {
    if (-not [string]::IsNullOrEmpty($currentGOROOT)) {
        Write-Host "检测到GOROOT现有值:$currentGOROOT,将更新为目标路径:$targetGOROOT" -ForegroundColor Yellow
    }
    # 配置GOROOT,永久生效
    [Environment]::SetEnvironmentVariable("GOROOT", $targetGOROOT, $envScope)
    Write-Host "GOROOT配置成功:$targetGOROOT" -ForegroundColor Green
}

# --------------- 步骤2:校验并配置GOPATH(避免重复/无效更新)---------------
Write-Host "`n正在校验并配置GOPATH..." -ForegroundColor Cyan
$currentGOPATH = [Environment]::GetEnvironmentVariable("GOPATH", $envScope)
if ($currentGOPATH -eq $targetGOPATH) {
    Write-Host "GOPATH已配置为目标路径:$targetGOPATH,无需更新。" -ForegroundColor Green
} else {
    if (-not [string]::IsNullOrEmpty($currentGOPATH)) {
        Write-Host "检测到GOPATH现有值:$currentGOPATH,将更新为目标路径:$targetGOPATH" -ForegroundColor Yellow
    }
    # 配置GOPATH,永久生效
    [Environment]::SetEnvironmentVariable("GOPATH", $targetGOPATH, $envScope)
    Write-Host "GOPATH配置成功:$targetGOPATH" -ForegroundColor Green
}

# --------------- 步骤3:校验并追加路径到PATH(避免重复添加)---------------
Write-Host "`n正在校验并配置PATH环境变量..." -ForegroundColor Cyan
# 定义需要添加到PATH的两个目标路径
$goBinPath = Join-Path -Path $targetGOROOT -ChildPath "bin"
$goWorkBinPath = Join-Path -Path $targetGOPATH -ChildPath "bin"
$targetPaths = @($goBinPath, $goWorkBinPath)

# 获取当前系统PATH的完整值
$currentPATH = [Environment]::GetEnvironmentVariable("PATH", $envScope)
# 拆分PATH为独立路径列表(Windows路径分隔符为;,处理可能的首尾空格)
$pathList = $currentPATH -split ";" | ForEach-Object { $_.Trim() } | Where-Object { -not [string]::IsNullOrEmpty($_) }

# 标记是否需要更新PATH
$needUpdatePATH = $false
# 存储最终的PATH列表
$newPathList = $pathList.Clone()

# 逐个校验目标路径是否已存在
foreach ($targetPath in $targetPaths) {
    # 不区分大小写校验(Windows路径大小写不敏感)
    $pathExists = $newPathList | Where-Object { $_ -eq $targetPath }
    if ($pathExists) {
        Write-Host "PATH中已存在路径:$targetPath,无需追加。" -ForegroundColor Green
    } else {
        Write-Host "PATH中缺失路径:$targetPath,将追加。" -ForegroundColor Yellow
        $newPathList += $targetPath
        $needUpdatePATH = $true
    }
}

# 若需要更新,则重新写入PATH(保持原有顺序,仅追加缺失路径)
if ($needUpdatePATH) {
    $newPATH = $newPathList -join ";"
    [Environment]::SetEnvironmentVariable("PATH", $newPATH, $envScope)
    Write-Host "PATH配置成功,已追加缺失的Go相关路径。" -ForegroundColor Green
} else {
    Write-Host "PATH中已包含所有Go相关路径,无需更新。" -ForegroundColor Green
}

# --------------- 步骤4:输出配置完成提示 ---------------
Write-Host "`n==================== 配置流程结束 ====================" 
Write-Host "1. 配置已永久生效(写入系统注册表),请打开【新的终端】验证。"
Write-Host "2. 验证命令:go version (输出版本信息即表示成功)"
Write-Host "3. 可选验证:go env (查看GOROOT、GOPATH配置是否正确)"

posted on 2026-01-01 18:54  白首码农  阅读(2)  评论(0)    收藏  举报