在Ubuntu上安装Golang有两种常用方式:通过APT包管理器安装(稳定版本)或手动下载安装(最新版本)。

sudo apt updatesudo apt install golang-gohttps://golang.org/dl/),下载适合Ubuntu的.tar.gz文件(如go1.23.0.linux-amd64.tar.gz);② 解压到/usr/local目录:wget https://golang.org/dl/go1.23.0.linux-amd64.tar.gzsudo tar -C /usr/local -xzf go1.23.0.linux-amd64.tar.gz验证安装:运行go version,若显示Go版本信息(如go1.23.0 linux/amd64),则说明安装成功。
为了让系统识别Go命令并管理项目依赖,需配置GOROOT(Go安装路径)、GOPATH(工作空间)和PATH(可执行文件路径)。
~/.bashrc文件(或~/.zshrc,若使用Zsh):nano ~/.bashrcexport GOROOT=/usr/local/go# Go安装目录export GOPATH=$HOME/go # 工作空间(存放项目代码和依赖)export PATH=$PATH:$GOROOT/bin:$GOPATH/bin# 添加Go命令到PATHexport GO111MODULE=on# 启用Go模块(推荐)export GOPROXY=https://goproxy.cn,direct# 国内镜像加速依赖下载source ~/.bashrc验证环境变量:
echo $GOROOT,应输出/usr/local/go;echo $GOPATH,应输出$HOME/go(如/home/username/go)。mkdir -p $GOPATH/src/myprojectcd $GOPATH/src/myprojectmain.go):package mainimport "fmt"func main() {fmt.Println("Hello, Ubuntu Golang!")}go run main.go若终端输出Hello, Ubuntu Golang!,则说明项目运行正常。本地打包(生成可执行文件):在项目目录下运行go build命令,生成与项目同名的可执行文件:
go build -o myproject执行./myproject,将输出Hello, Ubuntu Golang!。
交叉编译(为其他平台打包):Go支持跨平台编译,只需设置GOOS(目标操作系统)和GOARCH(目标架构)环境变量。例如:
GOOS=windows GOARCH=amd64 go build -o myproject.exeGOOS=darwin GOARCH=amd64 go build -o myproject生成的可执行文件可直接在对应平台运行。
静态链接(减少依赖):若需生成不依赖系统库的可执行文件(适用于容器或无Go环境的系统),设置CGO_ENABLED=0:
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o myproject此时可执行文件体积较大,但无需额外库支持。
压缩二进制文件:使用upx工具压缩可执行文件(减小体积):
sudo apt install upx# 安装upxupx --best myproject# 压缩(--best表示最高压缩率)压缩后文件体积可减少50%~70%。
自动化打包(Makefile/Shell脚本):
Makefile示例:在项目根目录创建Makefile文件:
GO := goPROJECT := myprojectOUTPUT := bin/$(PROJECT)BUILD_ENV := CGO_ENABLED=0 GOOS=linux GOARCH=amd64all: buildbuild:$(GO) build -o $(OUTPUT) $(BUILD_ENV) .clean:rm -f $(OUTPUT)运行make执行构建,make clean清理生成的文件。
Shell脚本示例(build.sh):
#!/bin/bashGO := goPROJECT := myprojectOUTPUT := bin/$(PROJECT)BUILD_ENV := CGO_ENABLED=0 GOOS=linux GOARCH=amd64case "$1" inbuild)echo "Building $(PROJECT)..."$(GO) build -o $(OUTPUT) $(BUILD_ENV) .;;clean)echo "Cleaning..."rm -f $(OUTPUT);;*)echo "Usage: $0 {build|clean}"exit 1;;esac给脚本添加执行权限:chmod +x build.sh,运行./build.sh build执行构建。
使用Docker将Go项目打包为镜像,便于部署到任何支持Docker的环境。
Dockerfile:在项目根目录创建Dockerfile文件:# 使用官方Go镜像作为构建环境FROM golang:1.23-alpine AS builderWORKDIR /appCOPY . .RUN go mod downloadRUN CGO_ENABLED=0 GOOS=linux go build -o myproject .# 使用轻量级scratch镜像作为运行环境FROM scratchCOPY --from=builder /app/myproject /myprojectENTRYPOINT ["/myproject"]docker build -t myproject-app .docker run --rm myproject-app容器将输出Hello, Ubuntu Golang!。通过以上步骤,你已在Ubuntu上成功配置Golang打包环境,可实现本地/跨平台打包、优化及容器化部署。根据项目需求选择合适的打包方式即可。