我可以在同一台机器上安装 运行 多个版本的 gcloud (google cloud sdk) 吗?

Can I install and run multiple versions of gcloud (google cloud sdk) on the same machine?

gcloud 中的功能和选项有时 deprecated/removed。如果 CI 依赖它并且重构不是一个选项,同时我们需要使用以后版本中出现的新功能,我们可以在同一台机器上安装多个版本的 gcloud 并同时使用吗?

有多种方法可以在您的计算机上安装 Cloud SDK。为此,最简单的方法可能是从 https://cloud.google.com/sdk/downloads#versioned.

下载版本控制包

例如你可以做

gsutil cp gs://cloud-sdk-release/google-cloud-sdk-VERSION-linux-x86_64.tar.gz .

您要获取的 VERSION 在哪里(例如“161.0.0”)。您也可以使用 wgetcurl 或简单地使用 browser to download 适用于您的平台的软件包。

然后 unzip/untar 进入您想要的位置,例如

mkdir -p ~/cloudsdk/161.0.0
tar xzf google-cloud-sdk-161.0.0-linux-x86_64.tar.gz -C ~/cloudsdk/161.0.0

重复一些不同的版本:

mkdir -p ~/cloudsdk/130.0.0
tar xzf google-cloud-sdk-130.0.0-linux-x86_64.tar.gz -C ~/cloudsdk/130.0.0

现在您可以通过

运行 gcloud
~/cloudsdk/161.0.0/google-cloud-sdk/bin/gcloud components list

~/cloudsdk/130.0.0/google-cloud-sdk/bin/gcloud components list

注意两个版本将共享相同的配置目录。这通常是不可取的,因为不同版本之间在处理配置的方式上可能会发生变化。要强制不同的 Cloud SDK 版本使用不同的 gcloud 配置,请设置 CLOUDSDK_CONFIG 环境变量以指向不同的 gcloud 配置目录。例如:

$ CLOUDSDK_CONFIG=~/.config/gcloud-legacy ~/cloudsdk/130.0.0/google-cloud-sdk/bin/gcloud