我在Archlinux上运行sudo pacman -Syu
,我得到以下内容:
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
的multilib和xenlism-arch。当我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.
答案 0 :(得分:53)
我只是遇到了同样的错误。问题似乎是archlinux-keyring
包中有新密钥,而新包(confuse
)使用这些密钥签名。由于两个软件包都在同一个事务中更新,因此在更新完成之前不能使用新密钥,但在检查软件包之前事务不会启动...
解决方案是自行更新archlinux-keyring
:
pacman -S archlinux-keyring
然后做其余的事情:
pacman -Su
如果失败,您可以尝试使用以下方式手动操作密钥:
pacman-key --populate
但通常没有必要。
答案 1 :(得分: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
答案 2 :(得分:2)
对于其他来到这里但没有找到rorido工作解决方案的人来说,请尝试用户BernhardFürst或Jham的答案pacman -S package-query
,这对我来说毫无问题。
此外,如果您仍然遇到this与libalpm.so.8: cannot open shared object file: No such file or directory
之类的问题,那么您必须手动重新安装包查询和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 ..
答案 3 :(得分:1)
我正在使用Manjaro,经过长时间的搜索,我可以通过遵循以下简单命令来解决此问题。
注意:您必须先运行pacman-key --init
,然后才能使用pacman。本地的
然后可以使用所有正式的Manjaro Linux的密钥填充密钥环
pacman-key --populate archlinux manjaro
的打包程序。
答案 4 :(得分:0)
无法准备交易(无效或损坏的数据库)
这是由于实际的(故障)镜像服务器传递了垃圾造成的。
注释掉那些标准服务器,并使用高质量的服务器,例如
ftp://ftp5.gwdg.de/pub/linux/archlinux/community/os/x86_64/
太糟糕了,以至于/etc/pacman.conf的评论如此差劲,以至于故意使自己变得毫无帮助和无懈可击,总是含糊其词,从来没有具体的帮助。 这是pacman看似无休止的错误命令中的最后一个错误。密钥难以管理,服务器混乱,libs混乱。花了我超过1天的时间来完成这个可怕的Arch体验。
答案 5 :(得分:0)
如果您仍然有错误。试试这个:
sudo find /var/cache/pacman/pkg/ -iname "*.part" -exec rm {} \;
它将删除.part文件,这将导致“无效或损坏的程序包”错误。删除它们后,运行以下命令:
sudo pacman -Syyu
如果没有丢失的密钥,这应该可以解决问题。