![Arch Linux 安装 - GPG 错误和无法识别的存档格式](https://linux22.com/image/152514/Arch%20Linux%20%E5%AE%89%E8%A3%85%20-%20GPG%20%E9%94%99%E8%AF%AF%E5%92%8C%E6%97%A0%E6%B3%95%E8%AF%86%E5%88%AB%E7%9A%84%E5%AD%98%E6%A1%A3%E6%A0%BC%E5%BC%8F.png)
我有一台 Lenovo Thinkpad X1,并一直尝试从我刻录到 4 GB USB 记忆棒上的 ISO 启动 Arch。
ISO 映像已正确刻录且未损坏。我的 SSD 上创建的分区是:
/dev/nvme0n1p1 8G swap
/dev/nvme0n1p2 469G ext4
我已经尝试过以下方法:
最初,timedatectl set-ntp true
没有检索到正确的时区,因此我手动将其设置为欧洲/苏黎世,这有效。我查了一下timedatectl status
,现在没问题了。
我通过 ping archlinux.org(或任何其他网站)检查 ip 链接是否已启动并正在运行。
我按照在一些社区帮助页面上找到的安装指南和说明来运行:
dirmngr < /dev/null
这将创建/root/.gnupg
目录和缓存。pacman-key --init
这给了我 -
gpg: Generating pacman keyring master key
gpg: agent_genkey failed: No such file or directory
gpg: key generation failed: No such file or directory
Updating trust database
No need for a trustdb check
注意:我还尝试编辑 pacman.conf 以在使用成功生成我自己的 gpg 密钥生成 gpg 密钥后提供一个--gpgdir
as ,并且 pacman-init 确实使用此目录作为主目录创建了 secring。我尝试更新 pacman.conf 中的 GPGDir 以指向但没有注意到结果有任何差异。/root/.gnupg
gpg2 --gen-key
/root/.gnupg
- `pacman-init --populate archlinux 当我不生成自己的 gpg 密钥时,此命令通常会完成而不会出现错误。如果我遵循我自己的 keygen,然后运行 pacman-init 并填充错误,如下所示:
Locally signing key <alphanumeric keyname>
ERROR: <alphanumeric keyname> could not be locally signed.
所有键都会重复此消息(6 次)。
但是,如果我运行 pacman-init没有生成我自己的 gpg 密钥(但在运行之后dirmngr < /dev/null
),然后填充会顺利进行。 (请记住,在这种情况下,pacman-key --init
无法迁移加密)。
pacman-key --refresh-keys
遇到(预期的?)错误 -
Refreshing 112 keys from hkps://hkps.pool.sks-keyservers.net
A specified local key could not be refreshed from the keyserver.
我还在步骤 1 和 2 之间运行了 gpg --refresh-keys ,这给出了相同的错误。这是预期的吗?
pacman -Syu
(也是-Sy -Syyuu)同样的错误-
error: GPGME error: No data
error: failed to update core, community, extra (invalid or corrupted database (PGP signature))
error: failed to synchronize all databases
pacstrap /mnt base
Creating install root at /mnt
Installing packages to /mnt
error: GPGME error: No data
failed to update core, community, extra (invalid or corrupted database (PGP signature))
error: failed to synchronize all databases
我假设它pacman -S
首先运行,所以它抛出完全相同的错误是合乎逻辑的。
为了解决这个问题,我清除了缓存pacman -Scc
并尝试将 *.db 文件替换var/lib/pacman/sync
为来自 和 的文件ftp://mirror.csclub.uwaterloo.ca/archlinux/community/os/x86_64/community.db
,ftp://mirror.csclub.uwaterloo.ca/archlinux/extra/os/x86_64/extra.db
但wget
命令挂起并且未完成。不知道为什么会这样。
我还编辑了 pacman.conf 来设置SigLevel = TrustAll Optional
或简单地设置为TrustAll
,我相信最基本的/没有验证。
我已经经历过安装指南和维基并从头开始重试安装两次。我也向已经安装并使用 Arch Linux 的朋友寻求帮助,但没有成功。
更新:我跟着这个拱门安装问题基本上“sudo-ed”了 init、populate 和sync 命令。我还更新了我的镜像列表以指向(仅)一些德国服务器。
初始化和填充仍然失败并出现错误。但同步成功了 ( sudo pacman -Syy
)。但是,当我尝试时,*.db 文件sudo pacman -Syyu
失败。error: unrecognized archive format
不确定我做错了什么,但会从头开始重试并更新这篇文章。
我想我应该更换镜子,因为这似乎是一个问题。然后我需要重新运行同步(我还需要重新初始化并重新填充密钥吗?)。