在 CentOS 上准备 Go 打包环境,关键不在命令多不多,而在于几项基础配置是否一次到位:Go 本体怎么安装、环境变量怎么写、依赖管理用哪套方式、构建命令该怎么执行。下面按实际操作顺序梳理一遍,照着做可以尽快得到一个能编译、能运行、也能跨平台输出可执行文件的 Go 环境。
安装 Go 运行与编译环境
如果当前机器还没有安装 Go,可以先在 CentOS 上完成基础环境部署。原文给出了两种常见方式,适合不同场景使用。

方式一:通过 yum 安装
如果你更看重安装过程简单、维护方便,可以直接使用包管理器:
sudo yum install golang
这种方式操作最省事,但版本通常受系统仓库影响。
方式二:下载官方压缩包手动安装
如果你需要更明确地控制版本,可以直接下载官方发布包。这里保留原文中的版本与命令:
wget https://golang.org/dl/go1.17.linux-amd64.tar.gz
sudo tar -C /usr/local -xzf go1.17.linux-amd64.tar.gz
这套方式更灵活,适合希望自行决定安装版本的场景。
补齐环境变量配置
无论你使用哪种安装方式,后续都需要把 Go 的执行路径和工作目录写入环境变量。编辑 ~/.bash_profile 或 ~/.bashrc,在文件末尾加入:
export PATH=$PATH:/usr/local/go/bin
export GOPATH=$HOME/go
export PATH=$PATH:$GOPATH/bin
保存后执行:
source ~/.bash_profile
如果你改的是 ~/.bashrc,也可以对应执行 source ~/.bashrc;或者直接重新打开一个终端窗口。
先验证 Go 是否安装成功
环境变量生效后,先不要急着构建项目,最好先确认 Go 已经能正常调用。命令如下:
go version
如果终端输出类似 go1.17 linux/amd64,说明 Go 已经安装完成,当前 shell 也能正确识别它。
理解 GOPATH 与 Go Modules 的作用
很多人在 CentOS 上把 Go 装好以后,编译仍然出错,问题往往不在安装本身,而在工作目录和依赖管理方式没有理顺。
GOPATH 工作目录怎么用
文中的配置已经把 GOPATH 设为 $HOME/go。按照传统用法,项目代码应放在 $GOPATH/src 目录下,这样 Go 工具链才能按既定规则找到源码。
如果你维护的是旧项目,理解这一点尤其重要。
Go 1.11 之后建议启用 Go Modules
从 Go 1.11 开始,官方更推荐使用 Go Modules 管理依赖,相比早期的 vendor 方式更直接。启用方法就是增加一个环境变量:
export GO111MODULE=on
同样可以把这行加入 ~/.bash_profile 或 ~/.bashrc,避免每次进入终端都手动设置。
开始打包 Go 应用
当 Go 安装、PATH、GOPATH 和模块设置都准备好之后,就可以直接构建应用了。假设入口文件为 main.go,目标输出文件名为 myapp:
go build -o myapp main.go
命令执行完成后,当前目录下会生成一个名为 myapp 的可执行文件。可以直接运行:
./myapp
如果这一步能正常启动,说明当前 CentOS 上的 Go 打包环境已经具备基本可用性。
需要跨平台时再做交叉编译
如果程序最终不是运行在当前这台 CentOS 机器上,而是要发给 Windows、macOS 或其他 Linux 架构使用,就需要交叉编译。核心做法是通过 GOOS 和 GOARCH 指定目标平台。

例如,原文给出的 Windows 64 位构建命令如下:
GOOS=windows GOARCH=amd64 go build -o myapp.exe main.go
执行后会生成 myapp.exe,可直接放到 Windows 机器上运行。
同理,类似 GOOS=linux、GOARCH=arm64 的组合也可以按需使用,适合需要发布到不同服务器或终端设备的场景。
打包前最好再检查两件事
完成环境配置后,最后还有两个地方值得提前确认。
- 先确保代码已经通过测试,避免把语法或逻辑问题带进构建流程。
- 确认依赖已经正确安装并能解析,否则编译时容易出现看起来像环境问题、实际却是依赖缺失的报错。
如果只是为了在 CentOS 上搭一个可用的 Go 打包环境,按照上面的顺序处理,通常就能把安装、构建和交叉编译这几件事一次理顺。









