从gcloud命令安装Google Cloud组件错误

Iva*_*dez 37 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 ?
???????????????????????????????????????????????????????????????????????????????????????????????????????????????
Run Code Online (Sandbox Code Playgroud)

$ gcloud组件安装kubectl您无法执行此操作,因为此Cloud SDK安装由外部包管理器管理.如果您想获得最新版本,请参阅我们的主要下载页面:

$ 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 ?
???????????????????????????????????????????????????????????????????????????????????????????????????????????????
Run Code Online (Sandbox Code Playgroud)

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

Mar*_*ark 31

只有在未通过其他程序包管理器安装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

  • 通过apt很好地安装了SDK,但是尝试了sudo apt-get install google-cloud-sdk-pubsub-emulator并得到错误:E:无法找到包google-cloud-sdk-pubsub-emulator。 (2认同)

Sco*_*McC 18

为Ubuntu OS的这个答案添加更多上下文,这些是我在google-cloud-sdk使用apt-get软件包管理器安装时所采取的步骤

  1. 使用删除现有安装

sudo apt-get remove google-cloud-sdk

  1. 导航到 https://cloud.google.com/sdk/docs/quickstart-linux并按照步骤下载tar.gz适用于您系统的正确软件包
  2. 导航到下载目录并使用解压缩归档

tar -zxf google-cloud-sdk-*

  1. 使用安装SDK ./google-cloud-sdk/install.sh

使用此安装,我可以gcloud使用以下命令进行更新和安装

gcloud components update
gcloud components install kubectl
Run Code Online (Sandbox Code Playgroud)

  • 步骤 4 后,您需要重新启动终端才能使更改生效。除此之外,这个解决方案解决了我在 Ubuntu 上安装 Kubernetes 的所有问题。 (3认同)

小智 6

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

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


sup*_*rEb 6

我的问题

我想升级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/
Run Code Online (Sandbox Code Playgroud)

我的解决方案

我发现 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*
Run Code Online (Sandbox Code Playgroud)

因此,要安装最新版本,我按照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
Run Code Online (Sandbox Code Playgroud)
  1. 将存档解压到文件系统上的任何位置;最好是您的主文件夹。
# tar zxvf google-cloud-sdk-247.0.0-linux-x86_64.tar.gz google-cloud-sdk
Run Code Online (Sandbox Code Playgroud)

然后/usr/lib/google-cloud-sdk用新目录替换旧目录:

# mv /usr/lib/google-cloud-sdk /usr/lib/google-cloud-sdk-ORIG
# mv google-cloud-sdk /usr/lib/
Run Code Online (Sandbox Code Playgroud)

这允许路径上已有的符号链接继续工作,保留现有的身份验证/配置,并且似乎支持gcloud components update将来的升级:

# gcloud components update

All components are up to date.
Run Code Online (Sandbox Code Playgroud)

有用的故障排除命令

在升级之前和之后运行这些可能会有所帮助gcloud。

您的 PATH 上的位置gcloud:

$ which gcloud
/usr/bin/gcloud
Run Code Online (Sandbox Code Playgroud)

您使用的是哪个版本gcloud:

$ gcloud version
Google Cloud SDK 247.0.0
bq 2.0.43
core 2019.05.17
gsutil 4.38
Run Code Online (Sandbox Code Playgroud)

使用什么凭据gcloud(默认情况下):

$ gcloud auth list
Run Code Online (Sandbox Code Playgroud)

使用什么配置gcloud(默认情况下):

$ gcloud config list
Run Code Online (Sandbox Code Playgroud)