确保Ubuntu系统已安装Golang(建议使用最新稳定版),并通过go version验证安装。若未安装,可通过以下命令安装:

sudo apt update && sudo apt install golang-go设置环境变量(可选但推荐),编辑~/.bashrc文件添加:
export GOROOT=/usr/lib/goexport GOPATH=$HOME/goexport PATH=$PATH:$GOROOT/bin:$GOPATH/bin运行source ~/.bashrc使配置生效。
创建项目目录并初始化Go Module(管理依赖):
mkdir myapp && cd myappgo mod init myapp# 生成go.mod文件编写代码(如main.go),示例:
package mainimport "fmt"func main() {fmt.Println("Hello, Ubuntu Golang App!")}使用go build命令生成可执行文件。若需指定目标平台(如Linux 64位),通过GOOS和GOARCH环境变量交叉编译:
GOOS=linux GOARCH=amd64 go build -o myapp# 生成适用于Linux的可执行文件若无需跨平台,直接运行go build -o myapp即可。
upx工具压缩二进制文件(需先安装):sudo apt install upxupx --best myapp# 最佳压缩率-ldflags注入版本、提交哈希等元数据,便于后续管理:VERSION=1.0.0COMMIT=$(git rev-parse --short HEAD)BUILD_TIME=$(date +%Y-%m-%dT%H:%M:%S)go build -ldflags "-X 'main.Version=$VERSION' -X 'main.Commit=$COMMIT' -X 'main.BuildTime=$BUILD_TIME'" -o myapp需在代码中定义对应变量(如main.go中添加var Version string)。tar命令将可执行文件打包为.tar.gz(便于传输):tar -czvf myapp.tar.gz myapp# 生成压缩包Dockerfile简化部署:FROM golang:1.22-alpine AS builderWORKDIR /appCOPY . .RUN go build -o myappFROM alpine:latestWORKDIR /appCOPY --from=builder /app/myapp .CMD ["./myapp"]构建并运行Docker镜像:docker build -t myapp:latest .docker run -p 8080:8080 myapp:latest# 根据实际端口调整myapp.tar.gz或Docker镜像上传至服务器,解压后运行:scp myapp.tar.gz user@server:/home/user/ssh user@servertar -xzvf myapp.tar.gzchmod +x myapp./myapp通过以上步骤,可实现Golang应用在Ubuntu下的编译、优化、打包及发布,满足不同场景的部署需求。