从gcloud命令

时间:2017-03-09 13:45:21

标签: google-cloud-platform gcloud

我正在尝试从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)此安装禁用组件管理器

知道为什么会出现这个错误?

4 个答案:

答案 0 :(得分:29)

只有在未通过其他程序包管理器安装SDK时,Cloud SDK组件管理器才有效。如果要使用组件管理器,可以使用以下方法之一进行安装:

https://cloud.google.com/sdk/downloads#versioned

https://cloud.google.com/sdk/downloads#interactive

我们的deb和yum repos中提供了其他软件包,因此可以使用所有相同的组件,您只需使用现有的软件包管理器即可安装它们:

https://cloud.google.com/sdk/downloads#apt-get

https://cloud.google.com/sdk/downloads#yum

答案 1 :(得分:14)

要为Ubuntu操作系统的答案添加更多上下文,这些是我已经使用google-cloud-sdk软件包管理器安装apt-get时采取的步骤

  1. 使用删除现有安装

    sudo apt-get remove google-cloud-sdk

  2. 导航到 https://cloud.google.com/sdk/docs/quickstart-linux并按照步骤为您的系统下载正确的tar.gz程序包

  3. 导航至下载目录并使用

    解压缩存档

    tar -zxf google-cloud-sdk-*

  4. 使用

    安装SDK

    ./google-cloud-sdk/install.sh

  5. 通过以下任一方式使gcloud命令可用:

    • 运行source ~/.bashrc
    • 关闭当前的会话并打开一个新的会话

使用此安装程序,我便可以使用以下命令更新和安装kubectl

gcloud components update
gcloud components install kubectl

答案 2 :(得分:4)

如果aptapt-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:

  
      
  1. 下载最适合您的操作系统的存档文件。
  2.   
# curl -O https://dl.google.com/dl/cloudsdk/channels/rapid/downloads/google-cloud-sdk-247.0.0-linux-x86_64.tar.gz
  
      
  1. 将存档提取到文件系统上的任何位置;最好是您的主文件夹。
  2.   
# 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