首先,尽管它看起来与以下问题相同
- 如何修复git错误:RPC失败;卷曲56 GnuTLS
- git错误:RPC失败,curl 56 GnuTLS recv错误(-110(,并且
- "错误:RPC失败;curl 56 GnuTLS recv错误(-110(:TLS连接未正确终止";,其中Hovo Asatryan评论了";它不能解决问题,我已经试过了">,我也试过,但都不管用
不是。因为所有这些问题都在git
上,但这是在go get
:上
$ go get -v -u golang.org/x/tools/cmd/goimports
get "golang.org/x/tools/cmd/goimports": found meta tag get.metaImport{Prefix:"golang.org/x/tools", VCS:"git", RepoRoot:"https://go.googlesource.com/tools"} at //golang.org/x/tools/cmd/goimports?go-get=1
get "golang.org/x/tools/cmd/goimports": verifying non-authoritative meta tag
golang.org/x/tools (download)
# cd .; git clone -- https://go.googlesource.com/tools /path/to/Go/src/golang.org/x/tools
Cloning into '.../Go/src/golang.org/x/tools'...
error: RPC failed; curl 56 GnuTLS recv error (-110): The TLS connection was non-properly terminated.
package golang.org/x/tools/cmd/goimports: exit status 128
所有的解决方案都不适合我,我相信对于典型的企业开发环境中的任何人来说:
- 我们在公司防火墙后面访问互联网,因此任何安全的https访问都将失败,除非得到特殊处理
- 除了像上面那样访问公共https git repos之外,https://go.googlesource.com/tools,这或多或少是一件一次性的事情,我们需要始终访问我们的内部https TFS git-reso。因此,我不能像其他解决方案建议的那样更改git-https访问方法
- 我事先尝试过使用
git config --global http.sslVerify false
,但问题仍然完全相同
所以问题是,我如何让go get
告诉git
放松安全检查
我想这是我唯一的选择,但我洗耳恭听。
PS。-insecure
也不起作用:
$ go get -v -insecure golang.org/x/sys/unix
get "golang.org/x/sys/unix": found meta tag get.metaImport{Prefix:"golang.org/x/sys", VCS:"git", RepoRoot:"https://go.googlesource.com/sys"} at //golang.org/x/sys/unix?go-get=1
get "golang.org/x/sys/unix": verifying non-authoritative meta tag
golang.org/x/sys (download)
# cd .; git clone -- https://go.googlesource.com/sys /path/to/Go/src/golang.org/x/sys
Cloning into '/path/to/Go/src/golang.org/x/sys'...
error: RPC failed; curl 56 GnuTLS recv error (-110): The TLS connection was non-properly terminated.
package golang.org/x/sys/unix: exit status 128
PPS。curl -s https://go.googlesource.com/sys
对我来说很好:
$ curl -s https://go.googlesource.com/sys
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><title>sys - Git at Google</title><link rel="stylesheet" . . .
我只是在这上面花了太多时间。F*ing ZScaller。最终对我起作用的是从WSL版本的go(我认为Ubuntu 20 go 1.13(切换到最新的版本(1.17.3(
我使用了以下链接中的组合来实现这一点,可能有更好的方法:
https://gist.github.com/nikhita/432436d570b89cab172dcf2894465753
https://askubuntu.com/questions/720260/updating-golang-on-ubuntu
但为了防止有人像我一样躲到这里:
sudo apt-get purge golang*
curl -k https://dl.google.com/go/go1.17.3.linux-amd64.tar.gz --output go1.17.3.linux-amd64.tar.gz
sudo tar -C /usr/local -xzf ./go1.17.3.linux-amd64.tar.gz
GOPATH=~/go
GOROOT=/usr/local/go
PATH=$PATH:$GOROOT/bin:$GOPATH/bin
go install package@latest
成功。FUZ(F U ZScaller(