在Ubuntu上安装Golang有两种常用方式:通过APT包管理器安装(简单快捷,适合快速搭建)或手动下载安装(可控制版本,适合需要特定版本的场景)。
方法一:通过APT安装(推荐新手)
更新系统包列表并安装Golang:
sudo apt update
sudo apt install golang-go
安装完成后,Golang会自动配置基础环境变量(如PATH),无需额外设置。
方法二:手动下载安装(推荐指定版本)
访问Golang官方下载页面,选择适合Ubuntu的.tar.gz格式安装包(如go1.23.0.linux-amd64.tar.gz),然后执行以下命令:
# 下载安装包(以1.23.0为例)
wget https://golang.org/dl/go1.23.0.linux-amd64.tar.gz
# 解压到/usr/local目录
sudo tar -C /usr/local -xzf go1.23.0.linux-amd64.tar.gz
验证安装:运行go version,若显示Golang版本信息(如go version go1.23.0 linux/amd64),则说明安装成功。
无论采用哪种安装方式,均需配置环境变量以让系统识别Golang命令及项目路径。
编辑~/.bashrc(或~/.zshrc,若使用Zsh)文件,添加以下内容:
# 设置GOROOT(Golang安装路径)
export GOROOT=/usr/local/go
# 设置GOPATH(工作目录,用于存放项目及第三方依赖)
export GOPATH=$HOME/go
# 将Golang可执行文件目录加入PATH
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin
# 启用Go模块(推荐,避免GOPATH依赖)
export GO111MODULE=on
# 设置国内代理(加速依赖下载,可选)
export GOPROXY=https://goproxy.cn,direct
保存文件后,运行source ~/.bashrc使配置生效。
在$GOPATH/src目录下创建项目文件夹(如myproject),并初始化Go模块(推荐):
# 进入项目目录
mkdir -p $GOPATH/src/myproject
cd $GOPATH/src/myproject
# 初始化Go模块(生成go.mod文件,管理依赖)
go mod init myproject
编写一个简单的main.go文件,测试环境是否正常:
package main
import "fmt"
func main() {
fmt.Println("Hello, Ubuntu Golang!")
}
运行go run main.go,若输出Hello, Ubuntu Golang!,则说明环境配置成功。
Golang支持静态编译,生成的可执行文件无需依赖系统环境(除CGO相关库外),适合跨平台部署。
本地打包:在项目目录下运行go build命令,生成可执行文件:
cd $GOPATH/src/myproject
go build -o myproject # 生成名为myproject的可执行文件
执行./myproject,即可运行程序。
跨平台打包:通过设置GOOS(目标操作系统)和GOARCH(目标架构)环境变量,可在Ubuntu上为其他平台打包。例如:
# 打包Windows 64位可执行文件
GOOS=windows GOARCH=amd64 go build -o myproject.exe
# 打包macOS 64位可执行文件
GOOS=darwin GOARCH=amd64 go build -o myproject_darwin
# 打包Linux 64位静态可执行文件(推荐,无外部依赖)
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o myproject_linux
注:CGO_ENABLED=0表示禁用CGO,生成纯静态可执行文件,避免依赖目标系统的动态库。
压缩可执行文件:使用upx工具减小文件体积(适合部署到资源有限的服务器):
sudo apt install upx # 安装upx
upx --best myproject_linux # 压缩可执行文件(最高压缩比)
自动化打包:通过Makefile或Shell脚本简化打包命令。例如,创建Makefile文件:
# Makefile示例
GO := go
PROJECT_PATH := $(shell pwd)
OUTPUT_NAME := myproject
BUILD_TARGET := $(PROJECT_PATH)/bin/$(OUTPUT_NAME)
BUILD_ENV := CGO_ENABLED=0 GOOS=linux GOARCH=amd64
all: build
build:
$(GO) build -o $(BUILD_TARGET) $(BUILD_ENV) $(PROJECT_PATH)
clean:
rm -f $(BUILD_TARGET)
运行make build即可自动编译,make clean清理生成的可执行文件。
通过以上步骤,即可在Ubuntu环境下完成Golang的配置与打包。根据项目需求,可选择本地打包、跨平台打包或自动化流程,提升开发效率。