在 Ubuntu 上用 Go(Golang) 打包,常见有几种场景,下面按最常见情况给你讲清楚。
sudo apt update
sudo apt install golang-go
验证:
go version
进入你的 Go 项目目录(有 main.go 的地方):
go build
会生成一个和目录同名的可执行文件。
指定输出文件名:
go build -o myapp
GOOS=linux GOARCH=amd64 go build -o myapp
GOOS=windows GOARCH=amd64 go build -o myapp.exe
GOOS=darwin GOARCH=amd64 go build -o myapp
go build -ldflags="-s -w" -o myapp
sudo apt install upx
upx myapp
如果你是想像软件一样安装,可以打 .deb 包。
dpkg-deb(简单)mkdir -p myapp/usr/bin
cp myapp myapp/usr/bin/
写 myapp/DEBIAN/control:
Package: myapp
Version: 1.0
Section: base
Priority: optional
Architecture: amd64
Maintainer: you <you@example.com>
Description: My Go App
打包:
dpkg-deb --build myapp
FROM golang:1.22 AS build
WORKDIR /app
COPY . .
RUN go build -o app
FROM ubuntu
COPY --from=build /app/app /usr/bin/app
CMD ["app"]
构建:
docker build -t myapp .
✅ go mod 项目要:
go mod tidy
✅ 静态编译(避免依赖 glibc):
CGO_ENABLED=0 go build
你可以告诉我:
.deb 安装包?我可以直接给你完整命令模板。