使用 Pacman 安装软件包

Tom*_*Cho 1 arch-linux pacman

我已经使用 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

可能的解决方案#1

# rm -R /var/lib/pacman/sync
# pacman -Syuf
Run Code Online (Sandbox Code Playgroud)

可能的解决方案#2

如果您修改了/etc/pacman.conf,请验证此行是否存在并且未注释:

SigLevel    = Required DatabaseOptional
Run Code Online (Sandbox Code Playgroud)

如果没有,请添加它,保存文件,然后# 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
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)

更多信息可以在这里找到