无法升级Archlinux(pacman -Syu无法正常工作)

时间:2016-02-07 08:30:16

标签: archlinux pacman-package-manager

我在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.

6 个答案:

答案 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,这对我来说毫无问题。

此外,如果您仍然遇到thislibalpm.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

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