Golang Go语言中关于包管理如何解决更新慢的问题?
Golang Go语言中关于包管理如何解决更新慢的问题?
最近在学习 Go 语言,看到 Go 的包管理工具五花八门,实在是让人头大。大家推荐使用 glide 来管理包。 但是更新的源主要是 golang.org 和 github.com ,这下载速度惨不忍睹。 特别是当项目发布之后,在测试环境和生产环境都是通过 jenkins 自动部署,每次这么 glide install ,让人很难受啊. 各位大佬有什么好的解决方案?
更多关于Golang Go语言中关于包管理如何解决更新慢的问题?的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html
配个环境变量,让这些请求走代理就行了
记着是这些
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语言)中,关于包管理更新慢的问题,可以通过以下几种方法来解决:
-
配置国内镜像源:
- Go语言的包管理依赖于模块代理。在国内,由于网络环境的特殊性,直接连接到官方代理服务器可能会导致更新速度缓慢。因此,建议配置国内镜像源,如阿里云(https://goproxy.cn)、腾讯云(https://mirrors.cloud.tencent.com/go)等。
- 可以通过设置GOPROXY环境变量来指定国内镜像源,例如:
export GOPROXY=https://goproxy.cn,direct
。
-
利用本地缓存:
- Go模块系统会将下载的包缓存在本地。在后续构建中,如果包没有更新,Go模块系统会直接从本地缓存中获取,而不是重新下载。
- 可以通过设置GOPROXY环境变量来启用或禁用缓存。例如,
export GOPROXY=file:///path/to/local/cache,direct
可以将GOPROXY设置为本地缓存路径。
-
并行下载:
- Go模块系统支持并行下载依赖包,可以通过设置环境变量GOMAXPROCS来指定并行下载的最大CPU核心数,从而提高下载速度。
-
定期清理不再使用的依赖:
- 使用
go mod tidy
命令可以自动清理项目中不再使用的依赖,保持依赖关系的整洁,也有助于提高后续构建和更新的速度。
- 使用
综上所述,通过配置国内镜像源、利用本地缓存、并行下载以及定期清理不再使用的依赖等方法,可以有效解决Golang包管理更新慢的问题。