![使用 Pacman 安装软件包](https://linux22.com/image/116080/%E4%BD%BF%E7%94%A8%20Pacman%20%E5%AE%89%E8%A3%85%E8%BD%AF%E4%BB%B6%E5%8C%85.png)
我已经使用 Ubuntu/Mint 好几年了,但我对 Arch Linux 等还是新手。我尝试使用安装 Arch Linux本指南在运行时pacstrap -i /mnt base
我收到一个错误,例如
==> Creating install root at /mnt
==> Installing packages to /mnt
error: GPGME error: No data
error: GPGME error: No data
error: GPGME error: No data
:: Synchronizing package databases...
core 1545.0 B 0.00B/s 00:00 [################################################] 100%
core.sig 1545.0 B 0.00B/s 00:00 [################################################] 100%
error: GPGME error: No data
error: failed to update core (invalid or corrupted database (PGP signature))
extra 1545.0 B 0.00B/s 00:00 [################################################] 100%
extra.sig 1545.0 B 0.00B/s 00:00 [################################################] 100%
error: GPGME error: No data
error: failed to update extra (invalid or corrupted database (PGP signature))
community 1545.0 B 0.00B/s 00:00 [################################################] 100%
community.sig 1545.0 B 0.00B/s 00:00 [################################################] 100%
error: GPGME error: No data
error: failed to update community (invalid or corrupted database (PGP signature))
error: failed to synchronize any databases
error: failed to init transaction (invalid or corrupted database (PGP signature))
==> ERROR: Failed to install packages to new root
我认为这是我无法安装 Arch Linux 的原因,并尝试安装 Manjaro。它安装得很好,但是当我运行时,例如,pacman -Syu
从 Manjaro 运行时,我收到类似的错误。
我做了一些挖掘(例如这里),我认为这是我的 ISP 的问题。用另一个人的话来说:我认为我的“ISP 正在过滤 pacman 请求并将其重定向到它自己的 html 重定向页面”。
问题是我无法从其他 ISP 安装它。有什么办法解决这个问题吗?
PS:我已经尝试了几乎所有的方法这一页。
编辑
我尝试了几种不同的镜子,它们都给出了相同的结果。
我尝试pacman -S archlinux-keyring
在 Manjaro 上运行,这是输出:
error: GPGME error: No data
error: GPGME error: No data
error: database 'community' is not valid (invalid or corrupted database (PGP signature))
error: database 'multilib' is not valid (invalid or corrupted database (PGP signature))
答案1
可能的解决方案#1
# rm -R /var/lib/pacman/sync
# pacman -Syuf
可能的解决方案#2
如果您修改了/etc/pacman.conf
,请验证此行是否存在并且未注释:
SigLevel = Required DatabaseOptional
如果没有,请添加它,保存文件,然后# pacman -Syyu
在新的 shell 窗口中运行。
可能的解决方案#3
1) 下载新的镜像列表:
IPv4 镜像列表
# wget "https://www.archlinux.org/mirrorlist/?country=all&protocol=http&protocol=https&ip_version=4" -O /etc/pacman.d/mirrorlist.new
IPv6镜像列表
# wget "https://www.archlinux.org/mirrorlist/?country=all&protocol=http&protocol=https&ip_version=6" -O /etc/pacman.d/mirrorlist.new
2)取消每个镜像的注释:
# sed -i 's/^#Server/Server/' /etc/pacman.d/mirrorlist.new
3) 对镜像进行排序。操作数 -n 6 表示仅输出 6 个最快的镜像:
# rankmirrors -n 6 /etc/pacman.d/mirrorlist.new > /etc/pacman.d/mirrorlist
4)强制pacman刷新包列表:
# pacman -Syyu
更多信息可以找到这里
答案2
我刚刚遇到了这个问题,问题是我位于强制门户后面,因此它不是下载 Arch 软件包列表,而是下载“请登录以访问互联网”网页。
我怀疑这里存在同样的问题,因为如果您查看输出,所有下载的存储库都显示为完全相同的大小(在本例中为 1545 字节)。存储库比这个大得多,并且大小都不同,因此这是告诉您下载的数据与 pacman 期望的数据不同的线索,因此当 pacman 尝试验证它时会出现错误。
就我而言,我必须使用基于控制台的 Web 浏览器elinks
(安装程序中提供)来访问强制门户并登录,一旦我再次获得正确的 Internet 访问权限,一切就正常了。
答案3
首先,这不是你无法安装 arch,如果你的 iso 是几个月前的,你可能有一个坏的 GPG 数据库,因此你会遇到这个问题。
最快的方法是下载最新的 ISO,因为问题现已解决。
另一方面,你可以尝试这个
sudo pacman -S archlinux-keyring
输出应该类似于:
resolving dependencies...
looking for conflicting packages...
Packages (1) archlinux-keyring-20170104-1
Total Installed Size: 0.81 MiB
Net Upgrade Size: 0.04 MiB
>
:: Proceed with installation? [Y/n] y
(1/1) checking keys in keyring [######################] 100%
(1/1) checking package integrity [######################] 100%
(1/1) loading package files [######################] 100%
(1/1) checking for file conflicts [######################] 100%
(1/1) checking available disk space [######################] 100%
:: Processing package changes...
(1/1) upgrading archlinux-keyring [######################] 100%
==> Appending keys from archlinux.gpg...
gpg: marginals needed: 3 completes needed: 1 trust model: PGP
gpg: depth: 0 valid: 1 signed: 6 trust: 0-, 0q, 0n, 0m, 0f, 1u
gpg: depth: 1 valid: 6 signed: 69 trust: 0-, 0q, 0n, 6m, 0f, 0u
gpg: depth: 2 valid: 69 signed: 7 trust: 69-, 0q, 0n, 0m, 0f, 0u
gpg: next trustdb check due at 2017-09-07
==> Locally signing trusted keys in keyring...
-> Locally signing key 0E8B644079F599DFC1DDC3973348882F6AC6A4C2...
-> Locally signing key 684148BB25B49E986A4944C55184252D824B18E8...
-> Locally signing key 91FFE0700E80619CEB73235CA88E23E377514E00...
-> Locally signing key 44D4A033AC140143927397D47EFD567D4C7EA887...
-> Locally signing key 27FFC4769E19F096D41D9265A04F9397CDFD6BB0...
-> Locally signing key AB19265E5D7D20687D303246BA1DFB64FFF979E7...
==> Importing owner trust values...
==> Disabling revoked keys in keyring...
-> Disabling key F5A361A3A13554B85E57DDDAAF7EF7873CFD4BB6...
-> Disabling key 7FA647CD89891DEDC060287BB9113D1ED21E1A55...
-> Disabling key D4DE5ABDE2A7287644EAC7E36D1A9E70E19DAA50...
-> Disabling key BC1FBE4D2826A0B51E47ED62E2539214C6C11350...
-> Disabling key 9515D8A8EAB88E49BB65EDBCE6B456CAF15447D5...
-> Disabling key 4A8B17E20B88ACA61860009B5CED81B7C2E5C0D2...
-> Disabling key 63F395DE2D6398BBE458F281F2DBB4931985A992...
-> Disabling key 0B20CA1931F5DA3A70D0F8D2EA6836E1AB441196...
-> Disabling key 8F76BEEA0289F9E1D3E229C05F946DED983D4366...
-> Disabling key 66BD74A036D522F51DD70A3C7F2A16726521E06D...
-> Disabling key 81D7F8241DB38BC759C80FCE3A726C6170E80477...
-> Disabling key E7210A59715F6940CF9A4E36A001876699AD6E84...
==> Updating trust database...
gpg: next trustdb check due at 2017-09-07
之后再运行一次:
sudo pacman -Syy
之后你可以再次运行
pacstrap /mnt base