使用curl出现gnutls_handshake() failed: Error in the pull functio

问题

系统:Ubuntu 16.04 LTS (amd64)
上来安了:

sudo apt-get install git
sudo apt-get install curl

然后想下载repo工具:

mkdir ~/bin
PATH=~/bin:$PATH
curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
chmod a+x ~/bin/repo

在执行curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo出现错误:
错误提示一:gnutls_handshake() failed: Error in the pull function.
错误提示二:GnuTLS recv error (-54): Error in the pull function.
错误提示三:Failed to connect to storage.googleapis.com port 443: Connection refused.

(有那么一次下载成功了,其余次数都下载不了)

原因

这他喵的跟天朝的GFW有关,一般你会把/etc/resolv.conf里面添加上谷歌的dns(或者阿里的),8.8.8.8,然后你再执行这条命令就好了,但是你接着再执行就连接不上了。你用火狐浏览器都能自己把那个repo文件下载下来,再复制到~/bin里面去,但你用curl就是不好使,真是心累。

解决

Git Repo 镜像使用,还是用清华大学镜像站吧,下载repo这个py脚本用下面命令

curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo -o repo
chmod +x repo

里面的更新一节,你也做了吧,不然repo init时就会报错Cannot get https://gerrit.googlesource.com/git-repo/clone.bundle。原因是:
repo的运行过程中会尝试访问官方的git源更新自己(但是因为你被墙了,所以又无法更新自己,自然报连接拒绝了),如果想使用tuna的镜像源进行更新,可以将如下内容复制到你的~/.bashrc

export REPO_URL='https://mirrors.tuna.tsinghua.edu.cn/git/git-repo/'

你可能感兴趣的:(Linux)