在Linux中使用Go语言的第一步是安装Go环境,主要有两种方式:通过包管理器安装(适合新手快速部署)和手动安装官方二进制包(适合需要最新版本或自定义配置的场景)。
大多数Linux发行版提供了Go语言的官方或第三方包,安装过程简单,但版本可能较旧(如Ubuntu 22.04默认仓库的Go版本为1.18,而最新稳定版为1.21+)。
sudo apt update && sudo apt install golang-go -y
sudo dnf install golang -y
sudo yum install epel-release -y),再执行:sudo yum install golang -y
sudo pacman -S go --noconfirm
安装完成后,通过go version命令验证是否成功(如输出go version go1.21.0 linux/amd64则表示安装正确)。
若需要最新版Go或自定义安装路径,手动安装是更好的选择:
go1.21.0.linux-amd64.tar.gz),或使用wget命令下载:wget https://go.dev/dl/go1.21.0.linux-amd64.tar.gz
/usr/local(系统级安装):sudo tar -C /usr/local -xzf go1.21.0.linux-amd64.tar.gz
~/.bashrc(bash用户)或~/.zshrc(zsh用户),添加以下内容:export GOROOT=/usr/local/go # Go安装目录
export GOPATH=$HOME/go # 工作目录(存放第三方包和编译输出)
export PATH=$GOROOT/bin:$GOPATH/bin:$PATH # 将Go命令加入PATH
保存后执行source ~/.bashrc(或source ~/.zshrc)使配置生效。从Go 1.11版本开始,Go Modules成为官方推荐的包管理解决方案,用于管理项目依赖、版本及构建流程。即使项目不在$GOPATH下,也能正常使用。
在项目根目录下执行go mod init命令,生成go.mod文件(记录项目模块名和依赖版本):
mkdir -p ~/myproject && cd ~/myproject
go mod init github.com/yourname/myproject # 模块名通常为项目导入路径
go.mod文件示例:
module github.com/yourname/myproject
go 1.21 # 指定Go版本
当你在代码中导入第三方包(如github.com/go-sql-driver/mysql)并运行go build、go run或go test时,Go会自动下载依赖并更新go.mod和go.sum(依赖校验文件)。
go build
go get命令指定依赖路径,可自动添加到go.mod:go get github.com/go-sql-driver/mysql
go get -u ./...
go get -u github.com/go-sql-driver/mysql
@version语法(如v1.2.3或提交哈希前7位):go get github.com/go-sql-driver/mysql@v1.6.0
执行go mod tidy命令,清理go.mod和go.sum中未使用的依赖(即代码中未导入的包):
go mod tidy
go mod graph命令生成依赖关系图(显示模块间的依赖关系):go mod graph
https://go.dev/mod/<module-path>(如https://go.dev/mod/github.com/go-sql-driver/mysql)查看该模块的所有版本。除了Go Modules的核心命令,以下命令也常用于包管理:
使用go install命令安装可执行程序(如golangci-lint代码检查工具),默认安装到$GOPATH/bin:
go install golang.org/x/lint/golint@latest
-d:仅下载依赖,不安装(用于离线场景)。-v:显示详细输出(显示安装的包名)。使用go download命令将依赖下载到本地模块缓存($GOPATH/pkg/mod),可用于离线构建:
go download github.com/go-sql-driver/mysql@v1.6.0
使用go clean命令清理构建生成的临时文件(如*.a静态库、*.exe可执行文件):
go clean -cache # 清理构建缓存
go clean -modcache # 清理模块缓存
goproxy.cn):go env -w GOPROXY=https://goproxy.cn,direct
sudo安装Go或依赖(可能导致权限混乱),建议使用普通用户并配置正确的环境变量。go.sum文件记录了依赖的校验和,确保依赖未被篡改,不要随意删除。通过以上步骤,你可以在Linux环境中高效地使用Go语言进行开发,并通过Go Modules管理项目依赖,确保项目的可维护性和稳定性。