52

我正在尝试从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 │
└───────────────┴──────────────────────────────────────────────────────┴──────────────────────────┴───────────┘

然后尝试安装kubectl

$ gcloud components install kubectl

You cannot perform this action because this Cloud SDK installation is 
managed by an external package manager.  If you would like to get the 
latest version, please see our main download page at:
https://cloud.google.com/sdk/
ERROR: (gcloud.components.install) The component manager is disabled for this installation

知道为什么会出现此错误吗?

4

5 回答 5

52

为了为 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
于 2018-06-28T00:38:04.223 回答
36

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

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

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

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

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

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

于 2017-03-10T23:02:52.407 回答
6

如果aptapt-get不卸载 gcloud,请尝试使用snap remove google-cloud-sdk.

如果您使用较新的 Ubuntu 版本(例如 LTS 18.04),可能会出现这种情况。

于 2018-10-02T08:09:31.743 回答
2

我的问题

我想gcloud在现有 GCE 实例(Ubuntu Xenial)上升级 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通过以下符号链接安装并包含在 PATH 中/usr/bin

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

$ 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
于 2019-05-26T15:04:16.367 回答
0
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/

我无法安装所需的kubectl gcloud 组件,原因是我使用 snap manager 安装 GCloud SDK,所以我还需要通过 snap 安装 kubectl。

sudo snap install kubectl --classic

它适用于我的情况。

于 2021-10-12T13:25:42.763 回答