我对这个更新终止错误感到困惑。
此错误会压缩所有更新,直到我在更新存储库上禁用 gpgcheck。 IE /etc/yum.repos.d/CentOS-Base.repo|[更新].gpgcheck=0
我拥有的每台机器上都会发生这种情况 - 我一开始以为这是一个“宠物/雪花”类型的问题,但事实并非如此,它正在影响整个群体。
warning: /var/cache/yum/x86_64/7/updates/packages/scap-security-guide-0.1.36-9.el7.centos.noarch.rpm: Header V3 RSA/SHA256 Signature, key ID f533f4fa: NOKEY
Public key for scap-security-guide-0.1.36-9.el7.centos.noarch.rpm is not installed
scap-security-guide-0.1.36-9.el7.centos.noarch.rpm | 4.4 MB 00:00:03
Retrieving key from file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
The GPG keys listed for the "CentOS-7 - Updates" 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: scap-security-guide-0.1.36-9.el7.centos.noarch
GPG Keys are configured as: file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
gpg --quiet --with-fingerprint /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
显示正确的指纹。
diff
说/etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
并
http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-7
匹配。
file
说 /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 是 PGP 公钥块。
stat
说这是一个普通文件。
ls -lZa /etc/pki/rpm-gpg/
显示 root:root 拥有的所有文件,并具有安全上下文:system_u:object_r:cert_t:s0
lsattr /etc/pki/rpm-gpg/
显示没有设置属性。
尚未报告磁盘错误。
自 2016 年安装操作系统以来,没有任何其他更新失败的记忆或记录。
yum provides scap-security-guide
说: scap-security-guide-0.1.36-9.el7.centos.noarch 位于 Repo 中:更新
/etc/yum.repos.d/CentOS-Base.repo (excerpt)
[base]
name=CentOS-$releasever - 基本
镜像列表=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os&infra=$infra
#
baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
#
发布的更新
[updates]
name=CentOS-$releasever - 更新
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=更新&infra=$infra
#
baseurl=http://mirror.centos.org/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
/etc/yum.conf
[主要]
cachedir=/var/cache/yum/$basearch/$releasever
keepcache=0
debuglevel=2
logfile=/var/log/yum.log
exactarch=1
obsoletes=1
gpgcheck=1
plugins=1
bugtracker_url=http://bugs.centos.org/set_project.php?project_id=23&ref=http://bugs.centos.org/bug_report_page.php?category=yum
distroverpkg=centos-release
#
安装deltarpm后添加
deltarpm=-1
重新启动后,我运行了
yum clean all
清除所有活动存储库的命令:base epel extras mariadb psychotic updates
然后在
rm -rf /var/cache/yum
重新运行之前yum update
它再次抛出错误并继续这样做
Centos 7.4
Centos 7.5
答案1
我已经看到了这个问题(哈哈 - 抱歉,不是 MITM 或损坏的镜像)。我追踪到系统上安装和链接的 gpg 版本。通常你会需要 gpg2。但是,如果(例如)您缺少 gpg2 二进制文件、缺少或错误排序的 PATH 条目、缺少二进制文件的链接等等,gpg 最终可能会成为您的默认设置。
答案2
有些人到这里也许能够解决他们的问题:
sudo yum install https://$(rpm -E '%{?centos:centos}%{!?centos:rhel}%{rhel}').iuscommunity.org/ius-release.rpm
和/或
sudo yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-$(rpm -E '%{rhel}').noarch.rpm
然后 yum update 就可以开始了
答案3
也许镜像确实有问题或者某种 MITM。
首先(缓存完好,所以在删除之前/var/cache/yum
)获取Key ID(Key ID的最后8个字符,第9个是换行符)
rpm -qpi /var/cache/yum/x86_64/7/updates/packages/scap-security-guide-0.1.36-9.el7.centos.noarch.rpm | tail -c9
就我而言,这是f4a80eb5
(我认为在你的情况下应该是相同的)
接下来,我们列出所有 rpm 已知的 gpg 公钥并搜索使用我们的软件包的那个
rpm -q gpg-pubkey --qf '%{NAME}-%{VERSION}-%{RELEASE}\t%{SUMMARY}\n' | grep f4a80eb5
这应该给我们一个结果
gpg-pubkey-f4a80eb5-53a7ff4b gpg(CentOS-7 Key (CentOS 7 Official Signing Key) <[email protected]>)
如果您没有rpm -q gpg-pubkey
命令的输出,这可能是两件事之一
rpm 无法看到公钥,您可能需要使用以下命令导入它
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
镜像中的包是不是使用正确的密钥进行签名,这可能是中间人攻击或镜像超越。
如果你得到一个结果,我真的不知道现在可能是什么问题。我会strace
深入研究并实际找出问题所在。
答案4
作为 sudo 输入:
yum install \ https://repo.ius.io/ius-release-el7.rpm \ https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
随后是一个yum update
为我工作。