解决CentOS7.6 yum报错GPG密钥不匹配:GPG Keys a

一、报错

1.报错内容

执行 yum install -y devtoolset-8-gcc* 报错

[root@hcss-ecs-a901 make-4.3] yum install -y devtoolset-8-gcc*

省略...
Transaction Summary
======================================================================================================
Install  5 Packages (+17 Dependent packages)

Total size: 67 M
Installed size: 194 M
Downloading packages:
warning: /var/cache/yum/x86_64/7/centos-sclo-rh/packages/devtoolset-8-gcc-gdb-plugin-8.3.1-3.2.el7.x86_64.rpm: Header V4 RSA/SHA1 Signature, key ID f2ee9d55: NOKEY
Retrieving key from https://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7


The GPG keys listed for the "CentOS-7 - SCLo rh" 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: devtoolset-8-gcc-gdb-plugin-8.3.1-3.2.el7.x86_64
 GPG Keys are configured as: https://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7

2.原因

GPG密钥不匹配 或者 密钥缺失。

(一般来说,都是 .repo 文件的 gpgkey 设置错误导致的)

3.什么是 GPG 密钥?(AI 解释)

GPG(GNU Privacy Guard)密钥用于验证软件包的完整性和来源。

具体来说,它可以确保软件包在传输过程中没有被篡改,并且确实是由合法的发布者创建的。

GPG 密钥分为公钥和私钥两部分:

  • 公钥:用于验证签名,通常发布给用户和系统。
  • 私钥:用于对软件包进行签名,只有发布者拥有。

在使用 yum 安装软件包时,系统会使用 GPG 公钥来验证软件包的签名,以确保软件包的安全性。

二、解决

1.问问GPT

  • GPT的意思是,我可能没有在 .repo 文件中设置正确的路径。
  • 这是真的。
  • 因为,我之前给这个文件设置的路径是 阿里云镜像下 centos-7 相关的 gpgkey

2.改进版本的解决方案

  • 咱不单纯听 GPT 的,将 gpgkey 完全换成另一个。
  • 小孩子才做选择。
  • 我们 两个都保留!

2.1 运行命令:

vi /etc/yum.repos.d/CentOS-SCLo-scl-rh.repo

2.2 替换文件内容如下(请别直接抄,把 gpgkey 的 URL 换成你需要的 URL)

  • 同时保留阿里云 和 centos 官方的 gpgkey,我的文件内容是这样的,请注意观察:
  • 不同的 gpgkey,使用 “,” 分隔开
  • 改动了内容后,:wq保存离开。
# CentOS-SCLo-rh.repo
#
# Please see http://wiki.centos.org/SpecialInterestGroup/SCLo for more
# information

[centos-sclo-rh]
name=CentOS-$releasever - SCLo rh
baseurl=https://mirrors.aliyun.com/centos/$releasever/sclo/$basearch/rh/
gpgcheck=1
enabled=1
gpgkey=https://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7,https://www.centos.org/keys/RPM-GPG-KEY-CentOS-SIG-SCLo

2.3 引入 GPGKEY

  • 引入的GPGKEY,来源于上面的 URL,你设置了几个,就引入几个
rpm --import https://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7
rpm --import https://www.centos.org/keys/RPM-GPG-KEY-CentOS-SIG-SCLo

2.4 重新安装(我装我的gcc,你装你的软件去)

yum install -y devtoolset-8-gcc*

三、解决

gcc安装成功了