温馨提示×

ubuntu golang打包在哪设置

小樊
39
2026-10-21 21:28:23
栏目: 编程语言

在 Ubuntu 上用 Golang 打包(编译)时,常见的“设置”主要集中在环境变量、编译参数、交叉编译、输出位置等几个方面。下面按常见需求给你梳理一下。


一、基础打包(本地编译)

在 Ubuntu 终端进入项目目录:

cd your_project
go build

默认会在当前目录生成可执行文件。

指定输出文件名和路径

go build -o bin/app main.go

二、Go 环境变量设置(重要)

查看当前环境:

go env

常用设置方式:

go env -w GOFLAGS="-mod=vendor"
go env -w GOPROXY=https://goproxy.cn,direct
go env -w GO111MODULE=on

或者在 ~/.bashrc / ~/.zshrc 里:

export GOPATH=$HOME/go
export PATH=$PATH:$GOPATH/bin

三、交叉编译(在 Ubuntu 打其他平台包)

例如打包 Linux 64 位:

GOOS=linux GOARCH=amd64 go build -o app

Windows:

GOOS=windows GOARCH=amd64 go build -o app.exe

macOS:

GOOS=darwin GOARCH=arm64 go build -o app

四、编译优化(减小体积)

go build -ldflags="-s -w" -o app

配合 upx(可选):

upx app

五、使用 Makefile(推荐)

Ubuntu 常见做法:

build:
	go build -o bin/app main.go

linux:
	GOOS=linux GOARCH=amd64 go build -o bin/app

windows:
	GOOS=windows GOARCH=amd64 go build -o bin/app.exe

使用:

make build

六、如果你说的是“打包成 deb / snap”

打 deb 包

常用工具:

  • dpkg-deb
  • fpm

示例(fpm):

fpm -s dir -t deb -n myapp -v 1.0 ./app=/usr/bin/app

打 snap 包

snapcraft

七、常见坑

  • Ubuntu 没装 Go:
    sudo apt install golang-go
    
  • 权限问题:
    chmod +x app
    
  • CGO 相关(用 sqlite 等):
    CGO_ENABLED=1 go build
    

如果你说的“打包在哪设置”是指 IDE(VSCode / Goland)里的打包配置,或者 Docker 里打包,可以告诉我具体场景,我给你更精确的配置。

0 踩