在 CentOS 上安装 Golang,真正容易卡住的往往不是下载和解压,而是版本选择、环境变量和项目目录这些细节。下面按“先装好、再跑通、最后补优化”的顺序梳理一遍,把手动安装与包管理器安装的差异、验证方法和 Go Modules 的使用放到同一套流程里,照着做基本就能直接进入开发状态。
先更新系统并装好基础依赖
正式安装 Go 之前,先把系统包更新到当前状态,再补齐常用工具。这样做的好处很直接:后面下载安装包、拉取代码仓库、编译部分依赖时不容易因为系统组件缺失而中断。
# 更新系统包
sudo yum update -y
# 安装wget(用于下载Golang安装包)、git(用于代码托管库交互)、gcc(用于编译部分依赖)
sudo yum install -y wget git gcc make
这里的 wget、git、gcc 和 make 都比较常用,即使当前项目还用不上,后续多数 Go 项目也大概率会依赖到它们。
安装 Golang:手动安装和包管理器怎么选
手动下载安装:更适合需要控制版本的场景
如果你希望明确指定 Go 版本,手动安装通常更稳妥。原文给出的示例版本是 go1.21.0.linux-amd64.tar.gz,这类方式尤其适合需要与项目版本保持一致的环境。


- 先从官方下载页选择适合 CentOS 的 Linux 安装包,然后使用
wget下载:
wget https://golang.org/dl/go1.21.0.linux-amd64.tar.gz
- 下载完成后,解压到系统级目录
/usr/local:
sudo tar -C /usr/local -xzf go1.21.0.linux-amd64.tar.gz
这种方式的优点是版本可控、路径清晰,后续排查问题也更方便。对于准备长期维护开发环境的用户,这通常是更推荐的方案。
包管理器安装:步骤更少,但版本可能偏旧
如果你只是想尽快装好可用环境,也可以直接使用系统自带的包管理器。不过要提前有心理预期:仓库中的 Go 版本不一定是最新稳定版。

- CentOS 8 及以上可使用
dnf:
sudo dnf install -y golang
- CentOS 7 及以下可使用
yum:
sudo yum install -y golang
如果项目对版本要求严格,优先选手动安装;如果只是临时测试或学习环境,包管理器方案会更省事。
配置环境变量,避免命令可用但项目跑不通
安装完成后,真正决定环境是否顺手的是环境变量。这里建议直接写入当前用户的 ~/.bashrc,既不影响其他用户,也方便后续维护。
把下面内容加入 ~/.bashrc:
# 设置Golang安装路径(GOROOT)
export GOROOT=/usr/local/go
# 设置工作目录(GOPATH,用于存放项目代码、依赖包)
export GOPATH=$HOME/go
# 将Golang可执行文件和项目bin目录加入PATH
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin
# 启用Go Modules(推荐,管理项目依赖)
export GO111MODULE=on
# 可选:设置国内代 理(加速依赖下载,如goproxy.cn)
export GOPROXY=https://goproxy.cn,direct
这几项分别解决不同问题:
GOROOT指向 Go 的安装目录;GOPATH用于存放项目代码、依赖和工具;PATH让系统能直接找到go命令以及项目生成的二进制文件;GO111MODULE=on用于启用 Go Modules;GOPROXY适合国内网络环境下加速依赖下载。
保存后,执行下面的命令让配置立即生效:
source ~/.bashrc
如果这一步漏掉,后面即使已经安装好 Go,终端里也可能仍然提示找不到 go 命令。
验证安装并跑通第一个 Go 程序
先确认 Go 是否已经可用
最直接的检查方式就是查看版本信息:
go version
如果终端返回类似 go1.21.0 linux/amd64 的结果,说明 Go 已经能被系统正常识别,基础安装没有问题。
创建一个最小示例项目
接下来可以通过一个简单程序确认编译和运行链路都正常。原文使用的是在 GOPATH 下创建项目目录的方式:
mkdir -p $GOPATH/src/hello
cd $GOPATH/src/hello
然后创建 hello.go,写入下面的代码:
package main
import "fmt"
func main() {
fmt.Println("Hello, Golang on CentOS!")
}
使用 go run 直接运行:
go run hello.go
正常情况下,终端会输出:Hello, Golang on CentOS!。到这里,说明你的 Go 环境已经不是“装上了”,而是真正能跑代码了。
需要第三方依赖时,直接用 Go Modules 管理
现在的大多数 Go 项目都会使用 Go Modules 来管理依赖。即使是一个简单项目,也建议尽早按这个方式组织,后续迁移和协作都会轻松很多。
初始化模块
在项目目录里执行:
go mod init hello
执行后会生成 go.mod 文件,用来记录当前项目的模块信息和依赖关系。
添加第三方依赖
如果项目要引入第三方库,比如 github.com/gin-gonic/gin,可以直接执行:
go get github.com/gin-gonic/gin
依赖会自动下载到 GOPATH/pkg/mod 目录,并同步更新 go.mod 文件。这也是前面建议配置 GOPROXY 的原因之一,网络环境不理想时能明显减少等待时间。
编译并运行生成的可执行文件
如果你不想每次都用 go run,也可以直接构建二进制文件:
go build -o hello
构建完成后,运行生成的程序:
./hello
这一步更接近实际部署和交付时的使用方式,也适合用来确认本机编译环境是否完整。
几个常见注意点
- 权限问题:如果安装或配置过程中出现权限错误,可以在需要的命令前加
sudo,例如sudo tar、sudo vim。 - 版本选择:建议优先选择最新稳定版 Golang,例如
1.21.x,通常在性能、兼容性和安全性上更稳妥。 - 代理设置:国内用户可优先考虑
goproxy.cn或goproxy.io,避免下载依赖时过慢或失败。
整体来看,在 CentOS 上搭建 Golang 环境并不难,关键是把安装方式、环境变量和依赖管理这三件事一次理顺。只要上面的验证和示例程序都能正常通过,后续继续开发 Go 项目一般就不会再被基础环境反复拖住。













