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” <<EOF
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” <<EOF

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]larrylarry@larryVirtualBox:  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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值