我正在尝试在我的Heroku应用程序上设置Sidekiq,目前正在GoRails上学习本教程。然而,每当我运行需要访问互联网的终端命令时,我似乎都会出错。我在开发过程中使用了Windows Subsystem for Linux,到目前为止还没有遇到任何问题。
例如,当我运行heroku config
以验证我的heroku redis
是否已设置时,我会得到以下内容(注意最后一行中有问题的错误):
▸ heroku-cli: update available from 6.14.39-addc925 to
▸ 6.99.0-ec9edad
▸ ECONNRESET: socket hang up
我不确定出了什么问题,但我不认为这本身就是heroku-cli问题。我认为这更像是Linux的Windows子系统问题。例如,当我运行yarn global list
时,我得到以下
yarn global v1.3.2
Done in 0.36s.
info There appears to be trouble with your network connection. Retrying...
info There appears to be trouble with your network connection. Retrying...
info There appears to be trouble with your network connection. Retrying...
info There appears to be trouble with your network connection. Retrying...
类似地,当我运行sudo apt-get update
来更新子系统本身时,我会得到很多错误。这是一个小样本:
...
...
Err:14 https://deb.nodesource.com/node_8.x xenial/main Sources
gnutls_handshake() failed: Error in the push function.
...
...
Err:84 http://archive.ubuntu.com/ubuntu xenial/multiverse amd64 Packages
Connection failed [IP: 91.189.88.161 80]
...
...
它安装了一些软件包,但其中许多软件包的连接都失败了。同样在运行sudo apt-get upgrade heroku
:时
Err:1 https://cli-assets.heroku.com/branches/stable/apt ./ heroku 6.14.40-1
gnutls_handshake() failed: Error in the push function.
Err:2 http://security.ubuntu.com/ubuntu xenial-security/main amd64 libssl-doc all 1.0.2g-1ubuntu4.10
Connection failed [IP: 91.189.88.161 80]
...
...
heroku给我的update available
信息也不会消失。
运行heroku update
可以得到以下内容:
▸ heroku-cli: update available from 6.14.39-addc925 to
▸ 6.99.0-ec9edad
▸ update the CLI with "sudo apt-get upgrade heroku"
▸ 'ECONNRESET': socket hang up
我不认为这是网络问题,因为我可以自由访问Chrome等网站。
有什么想法吗?我能做些什么来修复它?(在这个问题解决之前,我不想尝试推送我的代码)
经过进一步的挖掘,问题似乎出在了Windows上的卡巴斯基身上。我已经关闭了卡巴斯基并启动了一个新的WSL实例,一切都很好,没有gnutls_handshake()
故障(或任何其他故障)。
我第一次被问到这个问题是通过这个服务器故障问题——查看对这个问题的评论。
这个问题似乎有一个正在运行的线程(卡巴斯基对修复没有太大帮助:|):
这篇文章声称这个问题在Windows版本1809中得到了修复(我有1803)
这篇文章还谈到了WSL和卡巴斯基之间的问题。