在安装Google Cloud SDK后,Ubuntu 18.04 LTS上的Apt-get出现故障

86
我正在使用以下命令在我的Ubuntu虚拟机上安装Google Cloud SDK。
# Add the Cloud SDK distribution URI as a package source
echo "deb [signed-by=/usr/share/keyrings/cloud.google.gpg] http://packages.cloud.google.com/apt cloud-sdk main" | sudo tee -a /etc/apt/sources.list.d/google-cloud-sdk.list

# Import the Google Cloud Platform public key
curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key --keyring /usr/share/keyrings/cloud.google.gpg add -

# Update the package list and install the Cloud SDK
sudo apt-get update && sudo apt-get install google-cloud-sdk

我觉得它现在坏了。

 apt-get install unixODBC unixODBC-dev
E: Conflicting values set for option Signed-By regarding source https://packages.cloud.google.com/apt/ cloud-sdk: /usr/share/keyrings/cloud.google.gpg != 
E: The list of sources could not be read.
E: Conflicting values set for option Signed-By regarding source https://packages.cloud.google.com/apt/ cloud-sdk: /usr/share/keyrings/cloud.google.gpg != 
E: The list of sources could not be read.

有没有任何方法可以修复它,以便我可以继续下载软件包。


嘿,Vinay,请尝试按照以下命令更新apt:sudo apt update如果这不能解决您的问题,则尝试通过以下命令释放所有更改信息:sudo apt update -y --allow-releaseinfo-change - Adarsh Sharma
尝试了你的建议,但没有成功。 - Vinay Joseph
在我的情况下,这是一个新系统,我需要先安装“curl”。 - Nathan majicvr.com
7个回答

238
今天我因为没有认真按照安装说明的要求进行操作而遇到了非常类似的情况。我想发生的事情是,我不小心粘贴并执行了一些只应在你遇到任何先前步骤出现问题时才运行的命令。(那些上面有“故障排除提示”的命令。)
看起来我现在通过删除这些文件“解决”了它。
sudo rm /usr/share/keyrings/cloud.google.gpg
sudo rm /usr/share/keyrings/cloud.google.gpg~ 

sudo rm /etc/apt/sources.list.d/google-cloud-sdk.list

然后再次按照安装说明(这次更加仔细)安装Google Cloud SDK。


5
你把所有内容都快进了,然后按照那本手册上的每个命令都运行了一遍,是吗? :D - Ashkan Pourghasem
哈哈.. 是的,可能是我!;) - jonahe
3
哦,阅读理解也让我吃了亏。谢谢你提醒我要“仔细阅读文档”。:D - Roger Worrell
2
它也适用于 google-cloud-cli 的安装。 - LucG

22

通过运行单个命令来删除现有的sdk:

sudo rm /usr/share/keyrings/cloud.google.gpg && sudo rm /usr/share/keyrings/cloud.google.gpg~ && sudo rm /etc/apt/sources.list.d/google-cloud-sdk.list

通过运行单个命令来安装Google云SDK

sudo apt-get install apt-transport-https ca-certificates gnupg && echo "deb [signed-by=/usr/share/keyrings/cloud.google.gpg] https://packages.cloud.google.com/apt cloud-sdk main" | sudo tee -a /etc/apt/sources.list.d/google-cloud-sdk.list && curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key --keyring /usr/share/keyrings/cloud.google.gpg add - && sudo apt-get update && sudo apt-get install google-cloud-sdk && sudo apt-get install google-cloud-sdk-app-engine-java && sudo apt-get install google-cloud-sdk-app-engine-python && gcloud init
希望这个问题能够被解决。

4

我遵循了以下所有命令(用于尝试在系统中重现错误)

第一个命令

echo "deb [signed-by=/usr/share/keyrings/cloud.google.gpg] http://packages.cloud.google.com/apt cloud-sdk main" | sudo tee -a /etc/apt/sources.list.d/google-cloud-sdk.list

第二个命令

curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key --keyring /usr/share/keyrings/cloud.google.gpg add -

第三个命令

sudo apt-get update && sudo apt-get install google-cloud-sdk

第四个命令
sudo apt-get install unixODBC unixODBC-dev

以上命令提示

E:无法定位unixODBC包 E:无法定位unixODBC-dev包

然后我通过以下命令安装了所有gCloud sdk的依赖项 第五个命令

sudo apt-get install google-cloud-sdk-app-engine-java google-cloud-sdk-app-engine-python google-cloud-sdk-pubsub-emulator google-cloud-sdk-bigtable-emulator google-cloud-sdk-datastore-emulator kubectl

除了第五个命令外,所有的命令都是由您给出的。

我在我的机器上无法重现那个错误,但似乎您的apt需要清除已签署的证书并重新进行配置。

请参考下面的链接,它可能对您有帮助:https://www.fossmint.com/keep-ubuntu-system-clean/

如果您找到解决方案,请告诉我。

如有任何疑问,请随时讨论。


我收到了错误信息 E: 无法定位软件包unixODBCE: 无法定位软件包unixODBC-dev - Hunter

2
这个对我解决了问题:
curl -fsSL https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo gpg --yes --dearmor -o /usr/share/keyrings/cloud.google.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/cloud.google.gpg] https://packages.cloud.google.com/apt cloud-sdk main" | sudo tee /etc/apt/sources.list.d/google-cloud-sdk.list > /dev/null

1

我曾经遇到过同样的问题,这是我如何解决的

步骤1:删除sudo rm google-cloud-sdk.list命令

cd /etc/apt/sources.list.d
sudo rm google-cloud-sdk.list

步骤2:重新安装Google Cloud

sudo snap remove google-cloud-sdk # skip if you had installed gcp sdk before
sudo apt-get install apt-transport-https ca-certificates gnupg -y
echo "deb [signed-by=/usr/share/keyrings/cloud.google.gpg] https://packages.cloud.google.com/apt cloud-sdk main" | sudo tee -a /etc/apt/sources.list.d/google-cloud-sdk.list
sudo curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key --keyring /usr/share/keyrings/cloud.google.gpg add -
sudo apt-get update && sudo apt-get install google-cloud-sdk
gcloud init

参考:https://askubuntu.com/a/1389272


0
如果找不到这些文件,您可以在sources.list或sources.list.save中删除相关链接。这对我很有效。

0
我的笔记本电脑正在运行Debian 12(Bookworm),在将密钥添加到共享密钥环和相应的/etc/apt/sources.list.d条目后,我遇到了类似的错误消息。
以下是通常的步骤:
  1. 从Google文档提供的位置(https://packages.cloud.google.com/apt/doc/apt-key.gpg)下载最新的密钥,使用您喜欢的方法(curlwgetCtrl-C/Ctrl-V等)

  2. 检查密钥是否真实有效(gpg --show-keys /path/to/key.gpg并验证指纹)

  3. 将文件移动到/usr/share/keyrings/cloud.google.gpg

  4. /etc/apt/sources.list.d下创建一个新的apt源文件,并添加以下条目:

    deb [signed-by=/usr/share/keyrings/cloud.google.gpg] https://packages.cloud.google.com/apt cloud-sdk main
    
  5. 运行apt update

  6. 安装所需的软件包

基本上,签名包的标准流程,但在第5步时失败了,提示密钥具有无效的文件类型。
事实证明,Google在该URL上提供的文件扩展名为.gpg,而实际上应该是.asc,因为它包含了GPG密钥的ASCII装甲版本,而不是预期的二进制格式。
将GPG密钥文件更改为正确的扩展名"/usr/share/keyrings/cloud.google.asc"并更改"/etc/apt/sources.list.d/google-cloud-sdk.list"中对文件的引用解决了问题。

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