2023-03-23
技术
0

目录

问题原因
shell
sudo rm -R /var/lib/pacman/sync sudo pacman -Syu

https://zhul.in/2022/01/01/pacman-gpgme-error-no-data/

问题原因

pacman在更新数据库文件时也会尝试下载repo.db.sig,这里的repo.db.sig,这里的repo可以是core、extra、community、archlinuxcn等仓库名。

但是无论是官方源还是archlinuxcn源,大多数源的数据库文件都不会被签名,也就不会存在 .db.sig 文件。

pacman 尝试下载时这些数据库文件的签名文件时,镜像站就会返回 404 的http状态码告诉pacman: “你个傻叉,神他妈没有这个文件!”

pacman 挨了一顿骂,也就善罢甘休,没有再动这个念头,所以我们每次更新也都相安无事。

而出现这种错误的情况大多是发生在 校园网、酒店免费WIFI 这种需要登陆以后才能上网的网络环境。

因为 pacman 尝试下载 .db.sig 文件时被登陆网页劫持了(这点你们应该深有感受,如果你在这种网络环境下没有登陆,你无论访问什么网页都会被重定向到登录界面,http的状态码此时是200,不是404)。从没见过 .db.sig的 pacman 此时两眼放光,由于没有挨骂,他就迅速地把登录界面当成是.db.sig下载下来了。

下载下来以后,pacman 激动地摆弄起 .db.sig,甚至发现里面没有自己期待已久的 GPG签名数据并开始报错时仍然不愿意撒手,因此此时无论再怎么同步源码、再怎么 Syyu 也不会有效果,必须人工干预。

本文作者:Maxwell

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC 4.0 许可协议。转载请注明出处!