我正在尝试设置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.
我在Ubuntu 20中遇到了同样的问题。解决方案是使用snap进行安装。
snap install google-cloud-sdk --classic
确保你在最后有--classic
,否则你会得到这个错误:
错误:此版本的快照;谷歌云sdk"发表时使用了经典禁闭,因此可以在快照通常使用的安全沙箱之外执行任意系统更改限制在,这可能会使您的系统面临风险。如果您理解并希望继续,请重复包括--classic在内的命令。
问题似乎出现在谷歌上未更新的文档中。我用这个创建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
关注CCD_ 2。在谷歌网站上是http://packages.cloud.google.com/apt cloud-cli main
,所以看起来包的名称已经从cloud-cli
改为cloud-sdk
。
在我的案例中,解决方案是安装Ubuntu的早期18.04 LTS版本(卸载20.04(。完成这一操作后,谷歌云计算SDK的安装步骤成功运行。
我在这里找到了类似的问题/解决方案:https://forums.fast.ai/t/platform-gcp/27375/716
我认为用apt
在Ubuntu 20.04.3上获得gcloud
是不可能的,至少不是最新版本。我很想通过快照获得最新消息:
sudo snap install google-cloud-sdk --classic
但我想不出一个好的理由安全沙箱之外的任意系统更改";。顺便说一句,node
也有同样的警告,所以它并不罕见。尽管如此,我更喜欢在容器中运行它,顺便说一句,我也为Node.js.这样做
如果您已经运行docker或podman,这可能是另一个选项。请参阅下面的shell会话示例,在这里我可以获得360.0.0版本。我现在选择了slim,因为默认值大约是1GB,但有很多标签可以选择。
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
或者,对于当您exit
外壳时将停止的容器:
docker run -ti google/cloud-sdk:360.0.0-slim /bin/bash
官方的谷歌云sdk docker hub概览页面上有详细的文档。
我在我的CCD_ 10上有以下内容;gcloud shell":
alias gcloudshell='docker start gcloud && docker exec -ti gcloud /bin/bash'
请注意,即使容器已经在运行,它也可以多次使用。
我在使用WSL时遇到一个错误,我通过运行修复:
sudo snap install google-cloud-sdk --classic
sudo snap install google-cloud-cli --classic