在Ubuntu上快速打包Go项目,其实比想象中要简单。只要把环境搭好、流程理顺,几分钟就能搞定一个可部署的可执行文件。接下来,我们把整个过程拆开来看。

安装Go编译器
这一步没什么悬念——系统里得先有Go。如果还没装,打开终端跑几行命令就能搞定:sudo apt update sudo apt install golang-go注意,apt源里默认的Go版本可能不是最新的,但对于普通项目来说足够用了。如果非要最新版,去官网下载二进制包手动扔到
/usr/local也行。设置GOPATH和GOROOT环境变量
装好之后,得让系统知道Go的“家”在哪。把下面这几行加到~/.profile里,再让它生效:echo "export GOROOT=/usr/lib/go" >> ~/.profile echo "export GOPATH=$HOME/go" >> ~/.profile echo "export PATH=$PATH:$GOROOT/bin:$GOPATH/bin" >> ~/.profile source ~/.profile这里有个小坑:有些Ubuntu发行版默认Go装在
/usr/lib/go,但如果你手动装到别处,记得把路径换成实际的。另外,GOPATH最好设成用户目录下的go文件夹,省得跟系统全局混在一起。编写Go项目
项目结构其实很自由,但推荐用最经典的布局:my_project/ ├── main.go └── go.mod一个入口文件加一个依赖管理文件,清爽又清晰。注意,如果你的项目依赖比较多,
go.mod就是核心,没有它后面会乱成一团。使用Go Modules管理依赖
在项目根目录下执行:go mod init通常填项目的远程地址,比如github.com/yourusername/my_project。这一步会生成go.mod文件,后面再go build的时候,Go会自动下载依赖写入go.sum。编译Go项目
最核心的打包动作来了——直接编译:go build -o my_project这会在当前目录生成一个名为
my_project的可执行文件。注意,Go的静态编译特性让这个文件几乎“零依赖”,复制到其他Linux机器上就能跑,这是Go项目部署的一大优势。打包Go项目
编译出来的单个二进制文件已经可以直接用了,但如果要分发或存档,通常习惯打成tar.gz包。先跳转到$GOPATH/bin目录(因为go build如果不指定路径,默认生成在GOPATH/bin下,除非你用了-o指定了路径),然后执行:cd $GOPATH/bin tar -czvf my_project.tar.gz my_project这样就把
my_project压缩成my_project.tar.gz了。当然,你也可以直接把main.go和go.mod一起打包,方便别人在自己环境里重新编译。不过既然我们已经拿到了独立的可执行文件,直接扔这个tar.gz给服务器或同事就万事大吉。
整个过程走下来,其实就是“装环境—写代码—编译—压缩”四步。Go的静态编译和单文件产出,让打包和部署变得特别省心。如果你还在用动态语言,不妨试试这个流程,体验一下“编译完就跑”的爽快感。