可以的,Go(Golang)在 Ubuntu 上完全可以打包(编译生成可执行文件,甚至打包成 deb 包、Docker 镜像等)。下面分几种常见情况说明:
sudo apt update
sudo apt install golang-go
# 或指定版本
go version
go build -o myapp main.go
生成的 myapp 就是 Linux 可执行文件。
# Windows
GOOS=windows GOARCH=amd64 go build -o myapp.exe
# macOS
GOOS=darwin GOARCH=amd64 go build -o myapp_mac
如果你是想“像软件一样安装”,可以用:
dpkg-debmkdir -p myapp/DEBIAN
mkdir -p myapp/usr/bin
cp myapp myapp/usr/bin/
写 myapp/DEBIAN/control:
Package: myapp
Version: 1.0
Section: utils
Priority: optional
Architecture: amd64
Maintainer: you@example.com
Description: My Go App
打包:
dpkg-deb --build myapp
nfpm(推荐,简单)sudo apt install nfpm
配置 nfpm.yaml 后:
nfpm pkg --target myapp.deb
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 .
能,而且很常用
不需要,纯命令行即可
CGO_ENABLED=0 go build -o myapp
如果你指的是:
可以告诉我具体场景,我给你更精确的方案。