在 Ubuntu 上使用 Go(Golang)进行“打包”,通常有以下几种常见含义,你可以根据目标选择学习方向:
目标:在 Ubuntu 上把 Go 项目编译成可执行文件,甚至做成 .deb 安装包
官方文档(必看)
基础编译命令
# 安装 Go
sudo apt install golang-go
# 编译
go build -o myapp main.go
# 交叉编译(例如给 Windows)
GOOS=windows GOARCH=amd64 go build -o myapp.exe
dpkg-deb、fpm示例(fpm):
fpm -s dir -t deb -n myapp -v 1.0 \
--prefix /usr/bin \
./myapp
目标:学会打包/发布 Go 库
go mod init github.com/you/yourlib
go mod tidy
发布到 GitHub 即“打包完成”
目标:把 Go 程序打包成 Docker 镜像(Ubuntu 常用)
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"]
教程:
目标:发布到 Ubuntu Snap Store
sudo snap install snapcraft
snapcraft init
snapcraft
官方:
我可以直接给你一套可运行的示例。