我已经使用 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
Run Code Online (Sandbox Code Playgroud)
我认为这是我无法安装 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))
Run Code Online (Sandbox Code Playgroud)
小智 5
# rm -R /var/lib/pacman/sync
# pacman -Syuf
Run Code Online (Sandbox Code Playgroud)
如果您修改了/etc/pacman.conf
,请验证此行是否存在并且未注释:
SigLevel = Required DatabaseOptional
Run Code Online (Sandbox Code Playgroud)
如果没有,请添加它,保存文件,然后# pacman -Syyu
在新的 shell 窗口中运行。
1) 下载新的镜像列表:
IPv4 镜像列表
# wget "https://www.archlinux.org/mirrorlist/?country=all&protocol=http&protocol=https&ip_version=4" -O /etc/pacman.d/mirrorlist.new
Run Code Online (Sandbox Code Playgroud)
IPv6镜像列表
# wget "https://www.archlinux.org/mirrorlist/?country=all&protocol=http&protocol=https&ip_version=6" -O /etc/pacman.d/mirrorlist.new
Run Code Online (Sandbox Code Playgroud)
2)取消每个镜像的注释:
# sed -i 's/^#Server/Server/' /etc/pacman.d/mirrorlist.new
Run Code Online (Sandbox Code Playgroud)
3) 对镜像进行排序。操作数 -n 6 表示仅输出 6 个最快的镜像:
# rankmirrors -n 6 /etc/pacman.d/mirrorlist.new > /etc/pacman.d/mirrorlist
Run Code Online (Sandbox Code Playgroud)
4)强制pacman刷新包列表:
# pacman -Syyu
Run Code Online (Sandbox Code Playgroud)