使用dnf更新Node.js时遭遇GPG密钥校验错误的解决求助
嘿,我最近在服务器上用sudo dnf update把Node.js从v20.10.0升级到v20.12.2的时候碰到了GPG校验失败的问题,错误信息如下:
Node.js Packages for Linux RPM based distros - x86_64 1.6 MB/s | 1.7 kB 00:00
GPG key at file:///etc/pki/rpm-gpg/NODESOURCE-NSOLID-GPG-SIGNING-KEY-EL (0x9B1BE0B4) is already installed
The GPG keys listed for the "Node.js Packages for Linux RPM based distros - x86_64" repository are already installed but they are not correct for this package.
Check that the correct key URLs are configured for this repository.. Failing package is: nodejs-2:20.12.2-1nodesource.x86_64
GPG Keys are configured as: file:///etc/pki/rpm-gpg/NODESOURCE-NSOLID-GPG-SIGNING-KEY-EL
The downloaded packages were saved in cache until the next successful transaction.
You can remove cached packages by executing 'dnf clean packages'.
Error: GPG check FAILED
我整理了几个可行的解决思路,你可以按顺序试试看:
重新导入正确的Nodesource GPG密钥
看起来当前用的是NSOLID的密钥,和标准Node.js仓库不匹配。先删除旧密钥,再导入官方最新的:sudo rpm -e gpg-pubkey-9b1be0b4-* sudo curl -fsSL https://rpm.nodesource.com/gpgkey/nodesource-repo.gpg.key | sudo gpg --dearmor -o /etc/pki/rpm-gpg/NODESOURCE-GPG-SIGNING-KEY-EL清理DNF缓存后重试更新
缓存的旧包可能也会导致校验问题,先清理再单独更新Node.js:sudo dnf clean packages sudo dnf update nodejs检查仓库配置文件的密钥路径
打开Nodesource的repo配置文件(一般在/etc/yum.repos.d/nodesource.repo),确认gpgkey字段指向的是刚导入的新密钥路径file:///etc/pki/rpm-gpg/NODESOURCE-GPG-SIGNING-KEY-EL,如果是旧的NSOLID路径就修改保存,之后再尝试更新。
我自己试了第一个方法就解决了问题,希望这些方案能帮你搞定这个GPG校验错误~
备注:内容来源于stack exchange,提问作者Chronocide

