栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Go语言

go.mod中遇到的问题----------解决

Go语言 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

go.mod中遇到的问题----------解决

问题1:go get 时timeout
go: github.com/golang/groupcache@v0.0.0-20191027212112-611e8accdfc9: Get "https://goproxy.cn/github.com/golang/groupcache/@v/v0.0.0-20191027212112-611e8accdfc9.mod": dial tcp: lookup goproxy.cn on 127.0.1.1:53: read udp 127.0.0.1:40003->127.0.1.1:53: i/o timeout
解决直接下载并改名字:


改名字,与go.mod中一样

关于go.mod中指定的依赖包存储位置参考:

**目前所有模块版本数据均缓存在
$GOPATH/pkg/mod

​$GOPATH/pkg/sum

设置:

GO111MODULE=on
GOPROXY=https://goproxy.io

go env -w GO111MODULE=on
go env -w GOPROXY=https://goproxy.cn,https://goproxy.io,direct

查看

go env

备注



参考链接:https://blog.csdn.net/weixin_39003229/article/details/97638573

https://github.com/fenggolang/go-mod-demo

运行下面的语句,下载所有依赖包

go get ./…

关键参考

https://blog.csdn.net/qq_39611230/article/details/121232707

GOPATH修改,附多个值,go get的话,会在默认第一个值的路径中,

go.mod包依赖说的最清楚的

连接:
https://www.cnblogs.com/nickchen121/p/11517437.html

go mod的指令

如果下载所有依赖可以使用go mod download命令。

go get下载github分支

go mod支持语义化版本号,比如go get foo@v1.2.3,也可以跟git的分支或tag,比如go get foo@master,当然也可以跟git提交哈希,比如go get foo@e3702bed2。关于依赖的版本支持以下几种格式:

遇到go.mod文件中所述go1.14版的,需求:安装多个go的版本,根据goroot进行切换,其中gopath不准备改变,因为开启go mod的形式,直接到$gopath/pkd/mod下找包就可以,这个可以不变

安装两个版本较好的方式:

参考链接:https://jishuin.proginn.com/p/763bfbd6179b

删除老版本,安装新的

(1)uninstall old version of go

ubuntu16.04安装go1.13.4

删除老版本的go文件夹
sudo rm -rf /usr/local/go

sudo rm -rf /usr/bin/go

下载go安装包

wget https://dl.google.com/go/go1.13.4.linux-amd64.tar.gz
1
在当前目录,解压安装包至特定目录

sudo tar -xzf go1.13.4.linux-amd64.tar.gz -C /usr/local
1
到这里就好了。

另附:

vi /etc/profile

export GOPATH= H O M E / g o e x p o r t G O R O O T = / u s r / l o c a l / g o e x p o r t P A T H = HOME/go export GOROOT=/usr/local/go export PATH= HOME/goexportGOROOT=/usr/local/goexportPATH=GOROOT/bin:$PATH

source /etc/profile

参考链接:https://blog.csdn.net/qq_41547659/article/details/107746281

(2)install new version

最新版go不一定是1.16,安装方法一样,在这里找到最新版本的go压缩包 https://studygolang.com/dl

原文=======================================

下载目录:
https://studygolang.com/dl

32位选 go1.16.linux-386.tar.gz
64位选 go1.16.linux-amd64.tar.gz

uname -a查看本机位数,注意查看本机系统位数
i386对应的是32位系统、而i686是i386的一个子集,x86_64主要是64位系统

wget https://studygolang.com/dl/golang/go1.16.linux-amd64.tar.gz
tar -C /usr/local -xzf go1.16.linux-amd64.tar.gz
添加环境变量/etc/profile export PATH=$PATH:/usr/local/go/bin
source /etc/profile

开启go mod

go env -w GO111MODULE=on
go env -w GOPROXY=https://goproxy.cn,direct

安装多个go的版本并切换

(3)install go1.14

(3.1)
larry@larry-VirtualBox:~$ wget https://studygolang.com/dl/golang/go1.14.linux-amd64.tar.gz

sudo tar -C /usr/local/go1-14 -xzf go1.14.linux-amd64.tar.gz

把可执行的go名字改一下
larry@larry-VirtualBox:/usr/local/go1-14/go/bin$ sudo cp -r go go14

再改一下文件名,将最外层go文件设置成go14
larry@larry-VirtualBox:/usr/local/go14

(3.2) 将这个切换文件放到/usr/local/go/bin/的目录下,同时在PATH中去除路径/usr/local/go14/bin,以免go的调用出现歧义。****(非常重要)
比较优的切换方案(需要先执行下面的两行代码)
$ cat << EOF >/usr/local/go14/bin/go14
unset GOROOT
go env -w GOROOT="/usr/local/go14/"
/usr/local/go14/bin/go $@
EOF

$ chmod +x /usr/local/go14/bin/go14

遇到问题1:
bash: /usr/local/go14/bin/go14: 权限不够

解决方案1:

$ sudo bash -c “cat > /usr/local/go14/bin/go14” < unset GOROOT
go env -w GOROOT="/usr/local/go14/"
/usr/local/go14/bin/go $@
EOF

$ sudo chmod +x /usr/local/go14/bin/go14

实际的代码如下:
larry@larry-VirtualBox:~$ sudo bash -c “cat > /usr/local/go14/bin/go14” <

unset GOROOT
go env -w GOROOT="/usr/local/go14/"
/usr/local/go14/bin/go @ E O F [ s u d o ] l a r r y 的 密 码 : l a r r y @ l a r r y − V i r t u a l B o x :   @ EOF [sudo] larry 的密码: larry@larry-VirtualBox:~ @EOF[sudo]larry的密码:larry@larry−VirtualBox:  sudo chmod +x /usr/local/go14/bin/go14

遇到问题2:
larry@larry-VirtualBox:~$ go14 env GOROOT
go14:未找到命令

解决方案2:
sudo gedit /etc/profile

export PATH=$PATH:/usr/local/go14/bin

source /etc/profile

这个source之后,在这个窗口下,可以执行,另外,开窗口仍然不可执行。
考虑重启电脑后,这个导入的路径才可以在其他窗口也正常使用,可以正常使用了

(3.3)
执行切换的语句

larry@larry-VirtualBox:~$ go14 env GOROOT
/usr/local/go14

larry@larry-VirtualBox:~$ go env GOROOT
/usr/local/go

larry@larry-VirtualBox:~$ go env GOROOT
/usr/local/go

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/991407.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号