我正在按照官方网站中的步骤安装cassandra,进入
sudo apt-get
更新步骤我得到了这个
Warning: apt-key is deprecated. Manage keyring files in trusted.gpg.d instead (see apt-key(8)).
OK
W: The key(s) in the keyring /etc/apt/trusted.gpg are ignored as the file has an unsupported filetype.
我多次尝试使用多种方法导出一个或多个密钥,但我没有得到任何导出的响应,任何人都可以帮我解决这个问题。
我猜测您使用的 Ubuntu 版本 > 22。看起来
apt-key
已被弃用,这意味着 apt-get
无法使用旧格式的现有密钥来访问它的存储库。它已被 gpg
命令取代,该命令要求 gpg 密钥位于不同的位置和格式。
此问题的更全面描述可以在本文中找到 - Ubuntu:apt-key 已弃用
tl;博士;
要解决此问题,我们需要以正确的格式将当前的 GPG 公钥从文件
/etc/apt/trusted.gpg
和文件夹 /etc/apt/trusted.gpg.d/
移动到 /etc/apt/keyrings/
。
以下是本文中其中一个步骤的快速概要,大约为 2/3:
识别要迁移的密钥:
$ apt-key list
Warning: apt-key is deprecated. Manage keyring files in trusted.gpg.d instead (see apt-key(8)).
/etc/apt/trusted.gpg
--------------------
pub dsa1024 2007-03-08 [SC]
4CCA 1EAF 950C EE4A B839 76DC A040 830F 7FAC 5991
uid [ unknown] Google, Inc. Linux Package Signing Key <[email protected]>
sub elg2048 2007-03-08 [E]
pub rsa4096 2016-04-12 [SC]
EB4C 1BFD 4F04 2F6D DDCC EC91 7721 F63B D38B 4796
uid [ unknown] Google Inc. (Linux Packages Signing Authority) <[email protected]>
sub rsa4096 2021-10-26 [S] [expires: 2024-10-25]
sub rsa4096 2023-02-15 [S] [expires: 2026-02-14]
These 2 keys can be migrated into the same file:
sudo mkdir -p /etc/apt/trusted.gpg.d && \
sudo apt-key export -o /etc/apt/trusted.gpg.d/google.asc \
D38B4796 7FAC5991
迁移可以通过一个命令完成:
sudo apt-key export D38B4796 7FAC5991 | sudo gpg --dearmour -o /etc/apt/keyrings/google.gpg
但是,2 个步骤可能更好。此外,密钥
已过时,可以删除。7FAC5991
现在探索创建的文件的格式:
$ file /etc/apt/trusted.gpg.d/google.asc
/etc/apt/trusted.gpg.d/google.asc: PGP public
key block Public-Key (old)
格式是旧的文本格式PGP ASCII-Armor,我们需要将其以gpg支持的二进制格式OpenPGP导出并移动到正确的文件夹中:
sudo mkdir -p /etc/apt/keyrings/ \
&& cat /etc/apt/trusted.gpg.d/google.asc \
| sudo gpg --dearmour -o /etc/apt/keyrings/google-chrome.gpg
现在格式正确了:
$ file /etc/apt/keyrings/google.gpg
/etc/apt/keyrings/google.gpg: OpenPGP Public Key Version 4,
Created Thu Mar 8 20:17:10 2007, DSA (1024 bits); User ID; Signature;
OpenPGP Certificate
您可以使用以下方法删除公钥:
sudo apt-key del D38B4796 7FAC5991
阅读这篇文章。这样,当您阅读这些说明时,它们就会变得更有意义。