使用 Pacman 安装软件包

使用 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

链接到其他有类似错误的人。

我认为这是我无法安装 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

相关内容