我正在尝试安装Google Cloud SDK(https://cloud.google.com/sdk/docs/quickstart-mac-os-x)并收到此错误:
ERROR: (gcloud.components.list) Failed to fetch component listing from server. Check your network settings and try again.
已经尝试更新OpenSSL和相应的Python(也尝试过Python 2.7.8):
openssl version
OpenSSL 1.0.2k 26 Jan 2017
python -V
Python 2.7.13
Python也在使用这个OpenSSL版本:
>>> import ssl
>>> ssl.OPENSSL_VERSION
'OpenSSL 1.0.2k 26 Jan 2017'
我正在运行mac OS 10.12.4
我也试过brew cask install google-cloud-sdk
,它实际上只是下载正常版本并执行install.sh脚本。结果相同。
进一步调试显示,它无法加载https://dl.google.com/dl/cloudsdk/channels/rapid/components-2.json
并抛出此错误:URLError: <urlopen error timed out>
。
通过Python直接加载此文件有效:
urllib2.urlopen('https://dl.google.com/dl/cloudsdk/channels/rapid/components-2.json')
有什么想法吗?此外,任何提示如何进一步调试,将不胜感激:)
答案 0 :(得分:28)
关闭ipv6支持后,该工具就像魅力一样。看起来像gcloud无法正常使用ipv6 ...
禁用ipv6:
networksetup -setv6off Wi-Fi
启用ipv6:
networksetup -setv6automatic Wi-Fi
注意:在调查此问题时,我还能够通过使用非常长的超时(120秒)来使其工作。但是,对于大多数用例而言,这是不切实际的,因为它会为每个命令引入长时间的延迟。
超时位于google-cloud-sdk/lib/googlecloudsdk/core/updater/installers.py
第36行,名为TIMEOUT_IN_SEC
答案 1 :(得分:1)
禁用IPV6:
sysctl net.ipv6.conf.all.disable_ipv6=1
答案 2 :(得分:0)
禁用ipv6对我不起作用。在开始工作之前,我尝试了很多方法。 在解决问题之前,我已升级到Mojave OSX。
我更新了here所述的Mac标头:
open /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg
重新启动然后重新安装python2:
brew reinstall python2
这时问题仍然存在,决定重新安装gcloud并遇到this:
我使用的是zsh,所以我添加了以下内容.zshrc
:
source <PATH to gcloud sdk>/google-cloud-sdk/path.zsh.inc
source <PATH to gcloud sdk>/google-cloud-sdk/completion.zsh.inc
对于bash:
source <PATH to gcloud sdk>/google-cloud-sdk/path.bash.inc
source <PATH to gcloud sdk>/google-cloud-sdk/completion.bash.inc`
然后gcloud init
让我重新设置了一些代理配置,这可能是一开始的主要问题。