在 Linux 下配置 Go(Golang)的模块(Go Modules),主要是设置环境变量和使用 go mod 命令。下面按从零开始说明。
go version
如果没有安装:
sudo apt update
sudo apt install golang-go
或者官方方式(推荐):
wget https://go.dev/dl/go1.22.3.linux-amd64.tar.gz
sudo tar -C /usr/local -xzf go1.22.3.linux-amd64.tar.gz
编辑 ~/.bashrc 或 ~/.zshrc:
export PATH=$PATH:/usr/local/go/bin
export GOPATH=$HOME/go
export PATH=$PATH:$GOPATH/bin
生效:
source ~/.bashrc
Go 1.13+ 默认开启模块,但建议显式设置:
go env -w GO111MODULE=on
查看当前配置:
go env
国内推荐:
go env -w GOPROXY=https://goproxy.cn,direct
或者官方:
go env -w GOPROXY=https://proxy.golang.org,direct
关闭校验(可选,不推荐生产):
go env -w GOSUMDB=off
mkdir myproject
cd myproject
go mod init github.com/yourname/myproject
会生成:
go.mod
示例 go.mod:
module github.com/yourname/myproject
go 1.22
写代码:
package main
import (
"fmt"
"github.com/gin-gonic/gin"
)
func main() {
r := gin.Default()
r.GET("/", func(c *gin.Context) {
c.JSON(200, "ok")
})
r.Run()
}
然后:
go mod tidy
会自动:
go.modgo.sumgo mod init # 初始化模块
go mod tidy # 清理并下载依赖
go mod download # 下载依赖
go mod vendor # 生成 vendor 目录
go list -m all # 查看依赖
go get pkg@version # 安装指定版本
go mod vendor
go build -mod=vendor
go env -w GOPRIVATE=git.company.com
$HOME/go/pkg/mod
go clean -modcache
如果你有具体场景(如内网、私有 GitLab、Docker、CI),可以告诉我,我可以给你更针对性的配置。