Golang Go语言中关于包管理如何解决更新慢的问题?

发布于 1周前 作者 songsunli 来自 Go语言

Golang Go语言中关于包管理如何解决更新慢的问题?

最近在学习 Go 语言,看到 Go 的包管理工具五花八门,实在是让人头大。大家推荐使用 glide 来管理包。 但是更新的源主要是 golang.orggithub.com ,这下载速度惨不忍睹。 特别是当项目发布之后,在测试环境和生产环境都是通过 jenkins 自动部署,每次这么 glide install ,让人很难受啊. 各位大佬有什么好的解决方案?


更多关于Golang Go语言中关于包管理如何解决更新慢的问题?的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html

11 回复

配个环境变量,让这些请求走代理就行了
记着是这些
export https_proxy=socks5://127.0.0.1:1080
export http_proxy=socks5://127.0.0.1:1080

更多关于Golang Go语言中关于包管理如何解决更新慢的问题?的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html


要顺畅用 go,代理必备。

1.11 版本的 mod 有个设置环境变量的代理 GOPROXY,其他的 glide,dep 都不行

go mod 的话可以设置 GOPROXY 否则只能设置走系统代理了 glide 可以在配置例设置 mirror

vendor 包跟着 git 走,由特定的人维护依赖包版本。目前这种方式我们用着挺好。解决部署拉包的问题。

使用 go1.11 的 gomod,自己部署服务器 athens。或者等 GoCenter 发布

都有 go module 了,还用什么 glide

export GOPROXY=https://goproxy.io
或者
export GOPROXY="https://athens.azurefd.net"
就能用代理

感谢大家的解惑。
看了一遍 go mod 模式,确实比用 glide 方便多了。

之前还想着在自己的 gitlab 维护这些,但是也是不完美。

在Golang(Go语言)中,关于包管理更新慢的问题,可以通过以下几种方法来解决:

  1. 配置国内镜像源

    • Go语言的包管理依赖于模块代理。在国内,由于网络环境的特殊性,直接连接到官方代理服务器可能会导致更新速度缓慢。因此,建议配置国内镜像源,如阿里云(https://goproxy.cn)、腾讯云(https://mirrors.cloud.tencent.com/go)等。
    • 可以通过设置GOPROXY环境变量来指定国内镜像源,例如:export GOPROXY=https://goproxy.cn,direct
  2. 利用本地缓存

    • Go模块系统会将下载的包缓存在本地。在后续构建中,如果包没有更新,Go模块系统会直接从本地缓存中获取,而不是重新下载。
    • 可以通过设置GOPROXY环境变量来启用或禁用缓存。例如,export GOPROXY=file:///path/to/local/cache,direct 可以将GOPROXY设置为本地缓存路径。
  3. 并行下载

    • Go模块系统支持并行下载依赖包,可以通过设置环境变量GOMAXPROCS来指定并行下载的最大CPU核心数,从而提高下载速度。
  4. 定期清理不再使用的依赖

    • 使用go mod tidy命令可以自动清理项目中不再使用的依赖,保持依赖关系的整洁,也有助于提高后续构建和更新的速度。

综上所述,通过配置国内镜像源、利用本地缓存、并行下载以及定期清理不再使用的依赖等方法,可以有效解决Golang包管理更新慢的问题。

回到顶部