gcloud 组件更新失败

Posted

技术标签:

【中文标题】gcloud 组件更新失败【英文标题】:gcloud component update fails 【发布时间】:2015-03-23 17:10:57 【问题描述】:

我已经部署到 VM 在 GCE 上运行 Debian,并且有使用 gcloud 命令的 cron 脚本。

我注意到gcloud components update 会返回此错误

错误:(gcloud.components.update)此安装禁用组件管理器

我的 mac 可以正常更新 gcloud 和添加新组件。

VM 映像中的内置 gcloud 工具不会更新。我还没有找到如何启用组件管理器。

【问题讨论】:

【参考方案1】:

在尝试从google/cloud-sdk 在 Docker 容器上使用gcloud components install [x] 时来到这里并得到同样的错误(我可能不是唯一遇到这种情况的人)。

不幸的是,apt-get install google-cloud-sdk(正如最受好评的答案所建议的那样)没有帮助。

但是配置文件中丑陋的sed 成功了。肮脏但有效的修复(目前)。

RUN sed -i -e 's/"disable_updater": true,/"disable_updater": false,/' /usr/lib/google-cloud-sdk/lib/googlecloudsdk/core/config.json

【讨论】:

【参考方案2】:

更新

现在您可以使用sudo apt-get install google-cloud-sdk 命令安装或更新 Google Cloud SDK。

您可能需要在 Linux 机器中添加 Cloud SDK 存储库。这是instructions。

注意:不应再使用以下解决方法。

组件管理器已在最新图像上启用,gcloud components update 命令现在应该可以工作了。

如果您仍然遇到此问题,请使用以下命令启用更新程序:

sudo sed -i -e 's/true/false/' /usr/lib/google-cloud-sdk/lib/googlecloudsdk/core/config.json

【讨论】:

这是一个糟糕的建议。 Linux 发行版需要通过其包管理系统进行包安装/卸载/更新。启用 Cloud SDK 组件管理器和更新将有效地更改包管理器下的文件。当包在包管理器中更新时,或者当您尝试删除它时,这将导致将来出现问题。 @Kamran 不确定我是否没有查看最新的解决方案。我只是按照 ubuntu 的说明链接,在我的 VM 上安装了最新的 sdk,但是当我尝试安装更多组件时,仍然“组件管理器已禁用此安装” @Kamran 我遇到了同样的问题,尝试在云实例上设置 CI 构建代理,但是我无法安装 docker 组件。 (我已经运行了上述修复程序)您提到这是在 gcloud 上的最新图像上修复的,您指的是哪些实例图像? 这有帮助 ==>>> Kamran:尝试第 1 步。此链接中的 5 个 ===>>> cloud.google.com/sdk/downloads#apt-get【参考方案3】:

您现在可以在 Google Compute Engine 默认映像上运行 sudo apt-get install google-cloud-sdk 以更新 Cloud SDK。

【讨论】:

【参考方案4】:

根据上面 Vilas 的解释:您无法为内置的 gcloud 映像运行更新程序。但是,您可以在包管理器之外安装 gcloud 的副本并在该 gcloud 安装上运行更新程序。

【讨论】:

【参考方案5】:

您无法使用计算引擎实例上的内置 SDK 工具更新组件。但是,您可以从 https://cloud.google.com/sdk/ (curl https://sdk.cloud.google.com | bash) 下载 SDK 的另一个本地副本,并相应地更新您的路径以使用新的 SDK 安装,您将启用组件管理器。

【讨论】:

提供一些上下文; linux 发行版需要通过其包管理系统进行包安装/卸载/更新。这就是为什么 Cloud SDK 的内部组件管理器在通过这些包管理系统安装时被禁用的原因。 所以 Google 在构建 debian 映像时禁用了它,而我无法更新它们以获得错误修复或新功能?禁用更新仍然没有意义。 apt-get 无法找到 gcloud,因此它不在存储库中。我检查了我的 os x 版本,我的关键组件(如计算、gsutil)有更新的组件,而我的 debian GCE 实例缺少应用程序引擎组件,这意味着如果没有这个组件,我无法在 GCE 实例中执行任何 GAE 自动化。我不确定您的回答是否解决了原始问题

以上是关于gcloud 组件更新失败的主要内容,如果未能解决你的问题,请参考以下文章

Gcloud 云构建本地组件失败并出现错误“加载配置文件时出错:cloudbuild.Build 中的未知字段“availableSecrets””

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

gcloud preview app deploy每次在python项目中上传所有源代码文件需要很长时间

vc2012安装失败因为某些必需的组件失败

gcloud部署因BadFileExceptions而失败

Laravel - Vue - 组件不更新