go语言,安装包fetch error 问题解决方案
最近需要安装grequests,出现了下面的error
[fdf@zxmrlc ~]$ go get github.com/levigross/grequests package golang.org/x/net/publicsuffix: unrecognized import path "golang.org/x/net/publicsuffix" (https fetch: Get https://golang.org/x/net/publicsuffix?go-get=1: dial tcp 216.239.37.1:443: i/o timeout) [fdf@zxmrlc ~]$ go get -u -v github.com/levigross/grequests github.com/levigross/grequests (download) github.com/google/go-querystring (download) Fetching https://golang.org/x/net/publicsuffix?go-get=1 https fetch failed: Get https://golang.org/x/net/publicsuffix?go-get=1: dial tcp 216.239.37.1:443: i/o timeout package golang.org/x/net/publicsuffix: unrecognized import path "golang.org/x/net/publicsuffix" (https fetch: Get https://golang.org/x/net/publicsuffix?go-get=1: dial tcp 216.239.37.1:443: i/o timeout)
一般解决方案
1.FQ(科学上网)。
2.安装net包
golang 在 github 上建立了一个镜像库,如 https://github.com/golang/net 即是 https://golang.org/x/net 的镜像库
获取 golang.org/x/net 包,其实只需要以下步骤:
mkdir -p $GOPATH/src/golang.org/x
cd $GOPATH/src/golang.org/x
git clone https://github.com/golang/net.git
很早之前已经安装了net包但是依旧出现问题
[fdf@zxmrlc ~]$ echo $GOPATH [fdf@zxmrlc ~]$ echo $GOROOT [fdf@zxmrlc ~]$ go env | grep GOPATH GOPATH="/home/fdf/go"
查看history,出现问题的情况在于 环境变量的加载
gopath缺失,默认go env gopath为~/go,找不到net包。
开始以为:
图形界面启动终端操作是non-login shell,正常。
ssh 远程登录时是login shell,出现问题。
但是发现都会读取配置文件。最终发现在ssh登录用户的问题。
ssh用的root用户登录,然后gopath在非root用户环境变量配置文件。导致出现的gopath缺失。
解决方案 (vim 只是确认GOPATH在环境变量)
或者将GOPATH添加进全局环境变量配置文件
[fdf@zxmrlc ~]$ rm -rf go [fdf@zxmrlc ~]$ vim ~/.bash_profile [fdf@zxmrlc ~]$ source ~/.bash_profile [fdf@zxmrlc ~]$ go env | grep GOPATH GOPATH="/home/fdf/golang" [fdf@zxmrlc ~]$ echo $GOPATH /home/fdf/golang [fdf@zxmrlc ~]$ go get -u github.com/levigross/grequests