今天在用“BlackArch Linux”更新命令:sudo pacman -Syu 的时候,结果出现如下错误:
error:GPGME error:No data
error:failed to update extra(invalid or corrupted database(PGP signature))
中文翻译
错误:GPGME错误:无数据
错误:无法更新其他文件(无效或损坏的数据库(PGP签名))
解决方法
第一步:pacman.conf配置文件设置SigLevel;
配置文件位置,一般是位于:/etc/pacman.conf ,以下给大家一个默认示例:
vim /etc/pacman.conf
SigLevel = Optional TrustedOnly
或
SigLevel = Required DatabaseOptional #默认的设置下,系统只安装被授信的密钥签署的软件包。等同于 “SigLevel = Required DatabaseOptional TrustedOnly”;
如果设置为Never,则不会进行签名检查。
如果设置为Optional,将检查签名(如果存在),但也将接受未签名的数据库和软件包。
如果设置为Required,则所有软件包和数据库都需要签名。
TrustedOnly(默认):如果检查了签名,则该签名必须位于密钥环中并且完全受信任; 边际信任不符合此条件。
TrustAll:如果检查了签名,则签名必须在密钥环中,但不需要分配信任级别(例如,未知或边际信任)。
主要是看你这里是如何设置的?然后可以根据这个示例来更改成自己想要的,我查了一直我的pacman.conf,我的这里是被注释掉的,没有任何设置,如下图:
虽然说,我们可以直接把 SigLevel 设置为 Never,这样就可以爆力的解决这个问题,但是我不推荐这样设置,实在没办法了,再这样去设置吧!
第二步:初始化密钥环
注意:如果第一步设置了,还是有签名的问题,再走这一步。
# pacman-key --init
这会在 /etc/pacman.d/gnupg 建立新密钥并生成系统主密钥。
第三步:验证主密钥
# pacman-key --populate archlinux
总结:
如果还不能解决你的问题的话,请查看archlinux官方文档:
https://wiki.archlinux.org/index.php/Pacman/Package_signing_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87)