在 Ubuntu 上“打 Golang 包”一般有几种常见含义,我先按最常见的场景给你说明,你看看哪一种符合你的需求:
sudo apt update
sudo apt install golang-go
验证:
go version
进入你的 Go 项目目录(有 go.mod 的目录):
cd your_project
go build
会生成一个和目录同名的二进制文件。
指定输出文件名:
go build -o myapp
例如编译 Linux ARM64:
GOOS=linux GOARCH=arm64 go build -o myapp-arm64
常见组合:
# Windows
GOOS=windows GOARCH=amd64 go build -o myapp.exe
# macOS
GOOS=darwin GOARCH=arm64 go build -o myapp-mac
.deb 安装包如果你想在 Ubuntu 上“打安装包”,通常是 .deb。
dpkg-deb(简单)mkdir -p mypackage/DEBIAN
mkdir -p mypackage/usr/bin
cp myapp mypackage/usr/bin/
cat > mypackage/DEBIAN/control <<EOF
Package: myapp
Version: 1.0
Section: base
Priority: optional
Architecture: amd64
Maintainer: you@example.com
Description: My Go App
EOF
dpkg-deb --build mypackage
生成:
mypackage.deb
安装:
sudo dpkg -i mypackage.deb
nfpm(推荐,现代方式)go install github.com/goreleaser/nfpm/v2/cmd/nfpm@latest
写 nfpm.yaml 后:
nfpm package
常用工具:
goreleaser(最流行)go install github.com/goreleaser/goreleaser@latest
goreleaser release
那就不是打包,而是:
go mod init github.com/you/mylib
然后别人:
go get github.com/you/mylib
我可以给你更精确的命令和示例。