在 Debian 系统上管理 Go(Golang)依赖,本质上和在其他 Linux 发行版或 macOS/Windows 上是一样的,因为 Go 自带了依赖管理工具。下面从推荐方式到Debian 特有注意点给你讲清楚。
go mod init example.com/myproject
写代码时直接 import,然后执行:
go mod tidy
Go 会自动:
go.modgo.sumgo get github.com/gin-gonic/gin # 添加/更新依赖
go get -u # 更新所有依赖
go mod download # 下载依赖到本地缓存
go mod vendor # 生成 vendor 目录(可选)
默认在:
$HOME/go/pkg/mod
可以通过环境变量修改:
export GOMODCACHE=/path/to/cache
Debian 仓库里的 Go 通常很旧:
apt show golang-go
建议:
/usr/local/gosudo rm -rf /usr/local/go
sudo tar -C /usr/local -xzf go1.22.linux-amd64.tar.gz
加入 PATH:
export PATH=$PATH:/usr/local/go/bin
Debian 服务器常需要配置代理:
go env -w GOPROXY=https://proxy.golang.org,direct
# 国内推荐
go env -w GOPROXY=https://goproxy.cn,direct
关闭校验(不推荐,仅调试):
go env -w GOSUMDB=off
go mod vendor
然后把代码和 vendor/ 一起部署:
go build -mod=vendor
Debian 提供拆分包:
sudo apt install golang-go
常见包:
golang-go:编译器golang-anygolang-github-xxx:系统级 Go 库⚠️ 问题:
GOPATH只适合:
go mod download
go build -o app
Docker 示例(Debian base):
FROM golang:1.22-bookworm
WORKDIR /app
COPY go.mod go.sum ./
RUN go mod download
COPY . .
RUN go build -o app
✅ 推荐方案
go mod tidygoproxy.cn❌ 不推荐
如果你有具体场景(比如:
我可以给你更针对性的依赖管理方案。