GO开发环境搭建
下载安装
阿里云盘
https://www.alipan.com/s/ztTaPkk1in6
官方地址
All releases - The Go Programming Language
配置环境变量
Windows 上用管理员身份打开 PowerShell
- 按下 Win+X 组合键,弹出快速访问菜单。
- 选择 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配置是否正确)"
本文来自博客园,作者:白首码农,转载请注明原文链接:https://www.cnblogs.com/bsmn/p/19430504
浙公网安备 33010602011771号