在Ubuntu上安装Google Cloud SDK时出现错误,如何修复?

7

我试图设置Google Cloud SDK CLI来管理一些计算资源,我只是按照指南进行操作。我运行了此命令,并成功安装了许多东西,但遇到了下面的问题。有人能建议解决方案或如何调试吗?

$ sudo apt-get update && sudo apt-get install google-cloud-sdk                                   
[sudo] password for #######:                                                                                              
Hit:1 http://archive.ubuntu.com/ubuntu focal InRelease                                                                  
Get:2 http://archive.ubuntu.com/ubuntu focal-updates InRelease [111 kB]                                                         
Get:3 http://security.ubuntu.com/ubuntu focal-security InRelease [107 kB]                                                   
Get:4 http://archive.ubuntu.com/ubuntu focal-backports InRelease [98.3 kB]                                              
Get:5 https://packages.cloud.google.com/apt cloud-sdk InRelease [6349 B]                                                
Ign:6 http://packages.cloud.google.com/apt cloud-sdk-focal InRelease                                                    
Err:7 http://packages.cloud.google.com/apt cloud-sdk-focal Release                                                        
404  Not Found [IP: 216.58.204.238 80]                                                                                
Get:8 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 Packages [255 kB]                                       
Get:9 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 c-n-f Metadata [7492 B]                                 
Get:10 http://archive.ubuntu.com/ubuntu focal-updates/universe amd64 Packages [132 kB]                                  
Get:11 http://archive.ubuntu.com/ubuntu focal-updates/universe amd64 c-n-f Metadata [4732 B]                            
Reading package lists... Done                                                                                           
E: The repository 'http://packages.cloud.google.com/apt cloud-sdk-focal Release' does not have a Release file.
N: Updating from such a repository can't be done securely, and is therefore disabled by default.
N: See apt-secure(8) manpage for repository creation and user configuration details.   

你有按照这里列出的步骤1进行操作吗:https://cloud.google.com/sdk/docs/downloads-apt-get? - Spencer Bard
不幸的是,是的。我看到了一些提示表明我应该运行一个较旧版本的Ubuntu。 - Jules
5个回答

8

我在使用Ubuntu 20时也遇到了同样的问题。解决方法是使用snap进行安装。

snap install google-cloud-sdk --classic

请确保在命令末尾加上--classic,否则您将会遇到以下错误:

错误:该版本的 Snap“google-cloud-sdk”采用了经典约束发布,因此可能会执行超出通常限制在安全沙箱内的Snap所做的任意系统更改,这可能会使您的系统处于风险之中。如果您理解并希望继续,请重复该命令并包含 --classic。


谢谢。那正是我所需要的 :) - Chan Kha Vu
1
请注意,此版本的 snap "google-cloud-sdk" 是使用经典限制发布的,因此可能会在安全沙盒之外执行任意系统更改,这可能会使您的系统处于风险之中。 - jeremy_rutman
@jeremy_rutman 那是什么意思呢?我不应该相信谷歌吗? - jscul
在我看来,你可以相信谷歌会尽其所能来最大化利润。这可能包括尊重隐私,或者不尊重但不被发现。 - jeremy_rutman
这对我解决问题有帮助,非常感谢!+1 - Antoine

1

看起来问题出在谷歌的文档没有更新。我用这个方法创建了Docker镜像,但我相信它也适用于普通安装:

RUN apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 467B942D3A79BD29
 RUN apt-get update && apt-get install -y apt-transport-https ca-certificates curl gnupg

 RUN echo "deb [signed-by=/usr/share/keyrings/cloud.google.gpg] http://packages.cloud.google.com/apt cloud-sdk main" | \
     tee -a /etc/apt/sources.list.d/google-cloud-sdk.list && curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | \
     apt-key --keyring /usr/share/keyrings/cloud.google.gpg  add - && apt-get update -y && apt-get install google-cloud-cli -y

请注意 http://packages.cloud.google.com/apt cloud-sdk main。在 Google 的网站上是 http://packages.cloud.google.com/apt cloud-cli main,因此似乎包的名称已从 cloud-cli 更改为 cloud-sdk


0

我认为在Ubuntu 20.04.3上使用apt获取gcloud不可能,至少无法获取最新版本。我曾尝试通过snap获取最新版本:

sudo snap install google-cloud-sdk --classic

但我想不出一个好的理由来解释“安全沙盒之外的任意系统更改”。顺便说一下,对于node也有同样的警告,所以这并不罕见。尽管如此,我更喜欢在容器中运行它,顺便说一句,我也为Node.js这样做。

如果您已经运行了dockerpodman,那么这可能是另一个选择。请参见下面的示例shell会话,其中我获取版本360.0.0。目前我选择了slim,因为默认大小约为1GB,但有很多tags可供选择。

docker pull google/cloud-sdk:360.0.0-slim
# run a dummy tail so the container does not exit
docker run --name gcloud -d google/cloud-sdk:360.0.0-slim tail -f /dev/null
# now get a shell into it
docker exec -ti gcloud /bin/bash

root@ff77152a65ee:/# gcloud --version
Google Cloud SDK 360.0.0
alpha 2021.10.04
beta 2021.10.04
bq 2.0.71
core 2021.10.04
gsutil 5.3

或者,对于一个在你退出 shell 时会停止的容器:

docker run -ti google/cloud-sdk:360.0.0-slim /bin/bash

官方Google Cloud-SDK Docker Hub概述页面上有详细的文档。

我在~/.bashrc中添加了以下内容,以便快速进入“gcloud shell”:

alias gcloudshell='docker start gcloud && docker exec -ti gcloud /bin/bash'

请注意,即使容器已经运行,也可以多次使用它。


0
在我的情况下,解决方案是安装早期的Ubuntu 18.04 LTS版本(卸载20.04)。这样做后,Google Cloud Compute SDK的安装步骤成功了。
我在这里找到了一个类似的问题/解决方案描述: https://forums.fast.ai/t/platform-gcp/27375/716

0
我在使用WSL时遇到了一个错误,我通过运行以下命令进行了修复:
sudo snap  install google-cloud-sdk --classic
sudo snap  install google-cloud-cli --classic

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接