34

sudo pacman -Syu在我的 Archlinux 上运行,我得到以下信息:

cristian@localhost:~$ sudo pacman -Syu
:: Synchronizing package databases...
 core is up to date
 extra is up to date
 community is up to date
 multilib is up to date
 xenlism-arch is up to date
:: Starting full system upgrade...
resolving dependencies...
looking for conflicting packages...
error: failed to prepare transaction (could not satisfy dependencies)
:: package-query: requires pacman<4.3

解决此问题的解决方案是什么?

更新

我已经尝试了@jham 提出的两种解决方案。我已经完全删除了 yaourt 和 package-query。在pacman -Qi pacman'要求'我有none。我还评论了来自pacman.conf. 当我这样做时,pacman -Syu我得到以下信息:

:: Proceed with installation? [Y/n] 
(244/244) checking keys in keyring                              [###################################] 100%
(244/244) checking package integrity                            [###################################] 100%
error: confuse: signature from "Thorsten Töpper <atsutane@freethoughts.de>" is unknown trust
:: File /var/cache/pacman/pkg/confuse-2.8-2-x86_64.pkg.tar.xz is corrupted (invalid or corrupted package (PGP signature)).
Do you want to delete it? [Y/n] 
error: failed to commit transaction (invalid or corrupted package)
Errors occurred, no packages were upgraded.
4

7 回答 7

59

我刚刚遇到了同样的错误。问题似乎是包中有新的密钥archlinux-keyring,新的包(confuse)用这些密钥签名。由于两个包都在同一个事务中更新,所以在更新完成之前不能使用新密钥,但是在检查包之前事务不会开始......

解决方案是自行更新archlinux-keyring

pacman -S archlinux-keyring

然后做剩下的:

pacman -Su

如果失败,您可以尝试手动运行密钥,方法是:

pacman-key --populate

但通常没有必要。

于 2016-02-07T17:28:28.910 回答
7

我只是碰巧遇到了同样的问题,并通过以下方式解决了它:

$ sudo pacman -Rdd package-query # Purge the conflicting package-query
$ sudo pacman -Syu               # There it works

# Now reinstall package-query
$ git clone https://aur.archlinux.org/package-query.git
$ cd package-query && makepkg -si
于 2016-02-13T12:59:15.040 回答
2

对于其他进入这里但没有通过 rorido 工作找到解决方案的人,请尝试用户 Bernhard Fürst 或 Jham 的答案,pacman -S package-query这对我来说没有问题。

此外,如果您仍然遇到这样的问题那么libalpm.so.8: cannot open shared object file: No such file or directory您必须手动重新安装 package-query 和 yaourt。

sudo pacman-db-upgrade
yaourt -R package-query yaourt

git clone https://aur.archlinux.org/package-query.git
cd package-query
makepkg -si
cd ..
git clone https://aur.archlinux.org/yaourt.git
cd yaourt
makepkg -si
cd ..
于 2016-02-11T05:16:39.157 回答
2

如果你仍然有错误。试试这个:

sudo find /var/cache/pacman/pkg/ -iname "*.part" -exec rm {} \;

它会删除 .part 文件,这会导致“无效或损坏的包”错误。删除它们后,运行以下命令:

sudo pacman -Syyu

如果没有任何丢失的密钥,这应该可以解决问题。

于 2019-11-07T09:19:31.733 回答
1

我正在使用 Manjaro,经过长时间的搜索,我能够通过遵循这些简单的命令来解决这个问题。

注意:您必须pacman-key --init在第一次使用 pacman 之前运行;然后可以使用所有官方 Manjaro Linux 打包程序的密钥填充本地密钥环,使用pacman-key --populate archlinux manjaro.

于 2018-06-24T20:00:08.027 回答
0

未能准备事务(无效或损坏的数据库

这是由于实际(故障)镜像服务器提供垃圾。

注释掉那些标准服务器并使用质量服务器,例如

ftp://ftp5.gwdg.de/pub/linux/archlinux/community/os/x86_64/

太糟糕了,/etc/pacman.conf 的评论如此糟糕,好像故意无用和无能,总是含糊不清,从来没有具体的帮助。这是 pacman 看似无穷无尽的错误命令中的最后一个错误。密钥无法管理,服务器一团糟,库拼写混乱。我花了超过 1 天的时间来完成这个可怕的 Arch 体验。

于 2018-11-04T03:16:17.750 回答
0

以下内容适用于 ArchLinux,但也适用于其他 Linux 发行版。要更正无效的 KEY,需要执行以下操作:

rm -fr /etc/pacman.d/gnupg
pacman-key --init
pacman-key --populate archlinux

说引发错误的关键是在 Blackarch 中,那么还需要:

sudo pacman-key --populate blackarch

最后

sudo pacman -Sy archlinux-keyring
sudo pacman-key --populate archlinux
sudo pacman-key --refresh-keys
于 2022-01-16T11:49:07.037 回答