在OS X上安装Google Cloud SDK:(gcloud.components.list)无法从服务器获取组件列表

Jan*_*Jan 11 python macos google-cloud-sdk

我正在尝试安装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
Run Code Online (Sandbox Code Playgroud)

Python也在使用这个OpenSSL版本:

>>> import ssl
>>> ssl.OPENSSL_VERSION
'OpenSSL 1.0.2k  26 Jan 2017'
Run Code Online (Sandbox Code Playgroud)

我在跑 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')

有任何想法吗?还有任何提示如何进一步调试这个,将不胜感激:)

Jan*_*Jan 34

在关闭ipv6支持后,该工具就像一个魅力.看起来像gcloud无法正常使用ipv6 ...

禁用ipv6:

networksetup -setv6off Wi-Fi
Run Code Online (Sandbox Code Playgroud)

启用ipv6:

networksetup -setv6automatic Wi-Fi
Run Code Online (Sandbox Code Playgroud)

注意:在研究这个时,我也能够通过使用很长的超时 - 120秒来使其工作.但是,对于大多数用例来说,这是不切实际的,因为它会为每个命令引入很长的延迟.

超时位于google-cloud-sdk/lib/googlecloudsdk/core/updater/installers.py第36行调用TIMEOUT_IN_SEC

  • ipv6对我来说也是个问题.2017年塞拉利昂MBP. (3认同)
  • 谢谢你.注意,除非你禁用ipv6,否则macOS Sierra上的gcloud操作也会非常慢.为了澄清上述情况,Dimitri在这里显示的两个网络设置操作用于禁用(setv6off)然后重新启用(setv6automatic)ipv6.不要两者都做,否则你只需要再打开它. (2认同)