Golang Go语言中 go get 我是真的受不了

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

Golang Go语言中 go get 我是真的受不了
好麻烦啊,半天没反应,跟 npm 没办法比

39 回复

可以用 composer

更多关于Golang Go语言中 go get 我是真的受不了的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html


不会挂代理?那没办法了。

设置代理可以解决 go get 各种大姨妈

goproxy 了解一下

这玩意最骚是,如果我服务器上要 go get,心态就要崩了,服务器挂代理,妙啊。

go get: 锅从天上来

如果是 1.11 版本,可以设置 goproxy,有开源的谷歌代理地址:goproxy.io
设置:export GOPROXY=https://goproxy.io
还有 replace 方法,旧版可以使用 git clone 等等办法。
详细的步骤: https://github.com/overnote/golang/blob/master/01-Go%E5%88%9D%E8%AF%86/03-%E5%8C%85%E4%B8%8E%E4%BE%9D%E8%B5%96%E7%AE%A1%E7%90%86.md

export GOPROXY=https://goproxy.io

服务器也可用

3q 3q 终于搞定







不好意思初学 go,没想到这么麻烦…

我现在是直接把 src 目录一起打包了,直接构建部署…
====
不是,一楼二楼的 composer 和 pip ??是不是还有 yarn 和 npm ……

包的问题我也是理解不了,为什么要这么设计?

set http_proxy=http://127.0.0.1:1080
set https_proxy=http://127.0.0.1:1080

包管理上和 nodejs 区别很大,习惯就好了。
不过 go 因为之前的包管理很差,官方设定上有断层。
go1.11 版本之前,使用 gopath,需要在环境中指定 gopath 目录,import 的时候直接导入包名即可。
go1.11 版本后,支持 go modules,在 go.mod 中设置项目的全局名称,导包时使用全局名称.包名,此时不再依赖 gopath。
具体的详细解释也在 8 楼我回复的地址里

go get 可以使用 goproxy.io 吗?还在使用传统的 GOPATH。

透明代理解决一切问题

版本为 1.11 即可

设置 http_proxy 这个环境变量一切都解决。

用 go mod 的 replace,另外 go get 的时候加上 -v 参数,可以看到哪些包卡住了

墙的问题,使用 github 上的资源代替,要不然手动下载吧。

不要怪 go get,要怪就怪自己没有功夫,过不了网

可以试试 gopm

goproxy 是类似 registry 的模式,线上环境使用的话可以挂一个 http 的反向代理或者 cache

正真让你受不了的是墙,可你又不不敢说,跟 100 年一样闭关锁国

点名表扬一下 cargo 的设计

go get 这锅背得太冤了

docker pull 我是真的受不了了。
都是某墙的锅

如果是 早期版本,可以将依赖 vendor 化
如果是 1.11 以后,使用 go mod,那么设置 GoProxy

go 不应该是用部署机编译好下发给生产机吗?难不成你是在生产机子上编译的 ?

goproxy 官网的那个使用者地图。。。中国蓝了。。。哈哈。

为啥要在服务器上 go get ?

用 go mod tidy 吧

大 maven 无语的看着这群垃圾( go get、pip、npm、yarn )

理解您对 go get 的困扰,确实在使用 Go 语言进行依赖管理时,go get 有时会让人感到不够灵活或直观。不过,作为 Go 语言的包管理工具,go get 在不断演进,同时也有一些策略和方法可以帮助我们更有效地使用它。

首先,确保您的 Go 环境是最新的,因为每个新版本都可能包含对 go get 的改进。从 Go 1.17 开始,go get 引入了 -d 标志来仅下载依赖而不构建它们,这可以在某些情况下提高效率。

如果您发现 go get 在处理特定依赖时遇到问题,尝试明确指定版本号,例如 go get -u example.com/repo@v1.2.3。这可以避免由于依赖版本不兼容而导致的构建失败。

此外,对于更复杂的依赖管理需求,您可能希望考虑使用替代工具,如 go mod tidy 来清理未使用的依赖,或者 gopls(Go 语言服务器协议)来增强编辑器的依赖管理功能。

最后,如果您经常遇到 go get 相关的问题,可能是时候深入了解 Go 模块的工作原理了。理解模块版本控制、依赖解析和替换机制将帮助您更有效地管理项目依赖。

总之,虽然 go get 有时可能不尽如人意,但通过更新 Go 版本、使用明确的版本号、以及探索替代工具和方法,您可以改善依赖管理的体验。

回到顶部