我正在尝试从gcloud命令行安装几个GCP组件并始终得到相同的错误:
$ gcloud components list
Your current Cloud SDK version is: 146.0.0
The latest available version is: 146.0.0
┌─────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
│ Components │
├───────────────┬──────────────────────────────────────────────────────┬──────────────────────────┬───────────┤
│ Status │ Name │ ID │ Size │
├───────────────┼──────────────────────────────────────────────────────┼──────────────────────────┼───────────┤
│ Not Installed │ App Engine Go Extensions │ app-engine-go │ 47.9 MiB │
│ Not Installed │ Bigtable Command Line Tool │ cbt │ 3.8 MiB │
│ Not Installed │ Cloud Datalab Command Line Tool │ datalab │ < 1 MiB │
│ Not Installed │ Cloud Datastore Emulator │ cloud-datastore-emulator │ 15.4 MiB │
│ Not Installed │ Cloud Datastore Emulator (Legacy) │ gcd-emulator │ 38.1 MiB │
│ Not Installed │ Cloud Pub/Sub Emulator │ pubsub-emulator │ 21.0 MiB │
│ Not Installed │ Google Container Registry's Docker credential helper │ docker-credential-gcr │ 3.3 MiB │
│ Not Installed │ gcloud app Java Extensions │ app-engine-java │ 128.3 MiB │
│ Not Installed │ gcloud app Python Extensions │ app-engine-python │ 7.2 MiB │
│ Not Installed │ kubectl │ kubectl │ 11.5 MiB │
│ Installed │ BigQuery Command Line Tool │ bq │ < 1 MiB │
│ Installed │ Cloud SDK Core Libraries │ core │ 5.7 MiB │
│ Installed │ Cloud Storage Command Line Tool │ gsutil │ 2.8 MiB │
│ Installed │ Default set of gcloud commands │ gcloud │ │
│ Installed │ gcloud Alpha Commands │ alpha │ < 1 MiB │
│ Installed │ gcloud Beta Commands │ beta │ < 1 MiB │
└───────────────┴──────────────────────────────────────────────────────┴──────────────────────────┴───────────┘
$ gcloud组件安装kubectl 您无法执行此操作,因为此Cloud SDK安装是 由外部包管理器管理。如果你想得到 最新版本,请参阅我们的主要下载页面: https://cloud.google.com/sdk/ 错误:(gcloud.components.install)此安装禁用组件管理器
知道为什么会出现这个错误?
答案 0 :(得分:29)
只有在未通过其他程序包管理器安装SDK时,Cloud SDK组件管理器才有效。如果要使用组件管理器,可以使用以下方法之一进行安装:
https://cloud.google.com/sdk/downloads#versioned
https://cloud.google.com/sdk/downloads#interactive
我们的deb和yum repos中提供了其他软件包,因此可以使用所有相同的组件,您只需使用现有的软件包管理器即可安装它们:
答案 1 :(得分:14)
要为Ubuntu操作系统的答案添加更多上下文,这些是我已经使用google-cloud-sdk
软件包管理器安装apt-get
时采取的步骤
使用删除现有安装
sudo apt-get remove google-cloud-sdk
导航到
https://cloud.google.com/sdk/docs/quickstart-linux并按照步骤为您的系统下载正确的tar.gz
程序包
导航至下载目录并使用
解压缩存档 tar -zxf google-cloud-sdk-*
使用
安装SDK ./google-cloud-sdk/install.sh
通过以下任一方式使gcloud
命令可用:
source ~/.bashrc
或使用此安装程序,我便可以使用以下命令更新和安装kubectl
gcloud components update
gcloud components install kubectl
答案 2 :(得分:4)
如果apt
或apt-get
没有卸载gcloud,请尝试使用snap remove google-cloud-sdk
。
如果您使用较新的Ubuntu版本(例如LTS 18.04),可能就是这种情况。
答案 3 :(得分:0)
我想在现有GCE实例(Ubuntu Xenial)上升级gcloud
CLI版本,并运行gcloud components update
结果是:
# gcloud components update
ERROR: (gcloud.components.update) You cannot perform this action because this Cloud SDK installation is managed by an external package manager.
Please consider using a separate installation of the Cloud SDK created through the default mechanism described at: https://cloud.google.com/sdk/
我发现SDK可执行文件安装在/usr/lib/google-cloud-sdk
中,并通过/usr/bin
中的符号链接包含在PATH中:
# ll /usr/bin | grep google-cloud
lrwxrwxrwx 1 root root 30 Aug 20 2018 bq -> ../lib/google-cloud-sdk/bin/bq*
lrwxrwxrwx 1 root root 34 Aug 20 2018 gcloud -> ../lib/google-cloud-sdk/bin/gcloud*
lrwxrwxrwx 1 root root 52 Aug 20 2018 git-credential-gcloud.sh -> ../lib/google-cloud-sdk/bin/git-credential-gcloud.sh*
lrwxrwxrwx 1 root root 34 Aug 20 2018 gsutil -> ../lib/google-cloud-sdk/bin/gsutil*
因此,要安装最新版本,我遵循https://cloud.google.com/sdk/docs/quickstart-linux中的步骤3和4:
- 下载最适合您的操作系统的存档文件。
# curl -O https://dl.google.com/dl/cloudsdk/channels/rapid/downloads/google-cloud-sdk-247.0.0-linux-x86_64.tar.gz
- 将存档提取到文件系统上的任何位置;最好是您的主文件夹。
# tar zxvf google-cloud-sdk-247.0.0-linux-x86_64.tar.gz google-cloud-sdk
,然后将旧的/usr/lib/google-cloud-sdk
目录替换为新目录:
# mv /usr/lib/google-cloud-sdk /usr/lib/google-cloud-sdk-ORIG
# mv google-cloud-sdk /usr/lib/
这允许PATH中已经存在的符号链接继续工作,将现有的auth / config保留在适当的位置,并且将来似乎支持通过gcloud components update
进行升级:
# gcloud components update
All components are up to date.
在升级gcloud
之前和之后运行它们可能会有所帮助。
gcloud
在您的PATH上的位置:
$ which gcloud
/usr/bin/gcloud
您使用的gcloud
是哪个版本:
$ gcloud version
Google Cloud SDK 247.0.0
bq 2.0.43
core 2019.05.17
gsutil 4.38
gcloud
使用的凭据(默认情况下):
$ gcloud auth list
gcloud
使用的配置是什么(默认情况下):
$ gcloud config list