Go 安装 for Linux
本文档介绍在 Linux 系统上安装 Go 语言环境的多种方法。
方法一:使用官方二进制包安装(推荐)
1. 下载 Go 安装包
访问 Go 语言 下载页面 或直接使用以下命令下载最新版本:
bash
# 下载 Go 1.21.5(示例版本,请根据实际需要修改)
wget https://go.dev/dl/go1.21.5.linux-amd64.tar.gz2. 解压安装包
将下载的压缩包解压到 /usr/local 目录:
bash
sudo tar -C /usr/local -xzf go1.21.5.linux-amd64.tar.gz3. 配置环境变量
编辑 ~/.bashrc 或 ~/.profile 文件,添加以下内容:
bash
export PATH=$PATH:/usr/local/go/bin
export GOPATH=$HOME/go
export PATH=$PATH:$GOPATH/bin使环境变量立即生效:
bash
source ~/.bashrc4. 验证安装
bash
go version你应该会看到类似如下的输出:
bash
go version go1.21.5 linux/amd64方法二:使用包管理器安装
Ubuntu/Debian
bash
sudo apt update
sudo apt install golang-goCentOS/RHEL
bash
sudo yum install epel-release
sudo yum install golangFedora
bash
sudo dnf install golangArch Linux
bash
sudo pacman -S go注意:通过包管理器安装的版本可能不是最新的。如需最新版本,建议使用方法一。
方法三:使用 Snap 安装
如果您的系统支持 Snap,可以使用以下命令安装:
bash
sudo snap install go --classic配置 Go 模块代理(中国大陆用户)
如果您在中国大陆,建议配置 Go 模块代理以加速依赖下载:
bash
go env -w GO111MODULE=on
go env -w GOPROXY=https://goproxy.cn,direct或者使用七牛云代理:
bash
go env -w GOPROXY=https://goproxy.io,direct设置 Go 工作空间
创建 Go 工作空间目录结构:
bash
mkdir -p $HOME/go/{bin,pkg,src}卸载 Go
如果需要卸载 Go,执行以下命令:
bash
sudo rm -rf /usr/local/go并从 ~/.bashrc 或 ~/.profile 中删除相关的环境变量配置。
下一步
安装完成后,您可以:
完整示例
安装完成后,用下面的程序在命令行验证工具链。复制到文件后执行 go run main.go。
go
package main
import (
"fmt"
"os/exec"
"runtime"
"strings"
)
func main() {
out, err := exec.Command("go", "version").Output()
fmt.Println("go command found in PATH:", err == nil)
fmt.Println("version output starts with go:", err == nil && strings.HasPrefix(string(out), "go"))
fmt.Println("GOROOT is set:", runtime.GOROOT() != "")
}预期输出:
text
go command found in PATH: true
version output starts with go: true
GOROOT is set: true常见错误与踩坑
- 把 bin 目录加入
PATH。 解压到/usr/local/go后,在~/.profile或/etc/profile.d中导出/usr/local/go/bin。 - 发行版仓库版本较旧。 需要新版 Go 时应使用官方压缩包,而不是发行版仓库。
- 多版本共存用符号链接。 把
/usr/local/go指向go1.22之类的目录,切换更方便。 - 避免
sudo go build。 root 所有的缓存目录会导致后续构建出现权限错误。 - 升级前先删除旧目录。 在同一路径叠加两个版本会出现混乱的版本输出。
更新记录
- 2026-10-14:新增"阅读提示"、完整可运行示例(含预期输出)、常见错误与踩坑清单,以及本更新记录;修复了页面底部指向不存在页面的相对链接。
