2021/01/14

解决Pacman更新软件包时签名错误

我使用的发行版是Manjaro,在某次更新过程中强制重启。之后发现无法更新软件包。使用 pacman -S 安装任何软件都提示如下错误:

 error: GPGME error: Invalid crypto engine
 error: ***: missing required signature

查找一些资料说可以通过重新安装 gpgme和 keyring解决,但是由于pacman 安装软件包时也会校验签名导致无法重新安装。

期间折腾了好久,突然想到 pacman 好像可以通过配置文件设置是否校验软件包,试了一下果然好了。

操作步骤

修改 SigLevel :

sudo vim /etc/pacman.conf

将 [core] 的 SigLevel 改为 Never并保存,如下:

[core]
SigLevel = Never
#SigLevel = PackageRequired

移除无效的 key:

sudo rm -r /etc/pacman.d/gnupg 

重新安装 gnupg和 keyring:

sudo pacman -Sy gnupg archlinux-keyring manjaro-keyring

初始化 keyring:

sudo pacman-key --init 

加载签名:

sudo pacman-key --populate archlinux manjaro 

刷新签名:

sudo pacman-key --refresh-keys 

清除已下载的包缓存:

sudo pacman -Sc

最后将 SigLevel 的值改回来就行了。

搬瓦工上新