无法升级 Archlinux(pacman -Syu 不工作)
Cannot upgrade Archlinux (pacman -Syu not working)
我 运行 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
在 'required by' 我有 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.
我刚刚遇到了同样的错误。问题似乎是 archlinux-keyring
包中有新密钥,以及使用这些密钥签名的新包 (confuse
)。由于两个包都在同一个事务中更新,所以在更新完成之前不能使用新密钥,但是在检查包之前事务不会开始...
解决方案是自行更新 archlinux-keyring
:
pacman -S archlinux-keyring
然后做剩下的:
pacman -Su
如果失败,您可以尝试 运行 通过手动按键,使用:
pacman-key --populate
但通常没有必要。
对于来到这里但没有通过 rorido 找到解决方案的其他人,请尝试用户 Bernhard Fürst 或 Jham 的回答 pacman -S package-query
,这对我来说没有问题。
此外,如果您仍然遇到 this 和 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 ..
刚好我遇到了同样的问题,通过以下方式解决了:
$ 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
我正在使用 Manjaro,经过长时间的搜索,我能够按照这些简单的命令解决问题。
注意:在首次使用 pacman 之前,您必须 运行 pacman-key --init
;本地的
然后可以使用所有官方 Manjaro 的密钥填充密钥环 Linux
pacman-key --populate archlinux manjaro
.
的包装器
无法准备交易(无效或损坏的数据库)
这里是由于实际的(有故障的)镜像服务器传送垃圾。
注释掉那些标准服务器并使用高质量的服务器,例如
ftp://ftp5.gwdg.de/pub/linux/archlinux/community/os/x86_64/
太糟糕了 /etc/pacman.conf 的评论太差了,好像故意无助和无能,总是含糊不清,从来没有具体的帮助。
这是 pacman 似乎无穷无尽的错误中的最后一个错误。密钥无法管理,服务器一团糟,库拼写混乱。我花了超过 1 天的时间来完成这个可怕的 Arch 体验。
如果还是有错误。试试这个:
sudo find /var/cache/pacman/pkg/ -iname "*.part" -exec rm {} \;
它会删除 .part 文件,这会导致 "invalid or corrupted package" 错误。删除它们后,运行 这个:
sudo pacman -Syyu
如果没有丢失任何密钥,这应该可以解决问题。
以下内容适用于 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
我 运行 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
在 'required by' 我有 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.
我刚刚遇到了同样的错误。问题似乎是 archlinux-keyring
包中有新密钥,以及使用这些密钥签名的新包 (confuse
)。由于两个包都在同一个事务中更新,所以在更新完成之前不能使用新密钥,但是在检查包之前事务不会开始...
解决方案是自行更新 archlinux-keyring
:
pacman -S archlinux-keyring
然后做剩下的:
pacman -Su
如果失败,您可以尝试 运行 通过手动按键,使用:
pacman-key --populate
但通常没有必要。
对于来到这里但没有通过 rorido 找到解决方案的其他人,请尝试用户 Bernhard Fürst 或 Jham 的回答 pacman -S package-query
,这对我来说没有问题。
此外,如果您仍然遇到 this 和 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 ..
刚好我遇到了同样的问题,通过以下方式解决了:
$ 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
我正在使用 Manjaro,经过长时间的搜索,我能够按照这些简单的命令解决问题。
注意:在首次使用 pacman 之前,您必须 运行 pacman-key --init
;本地的
然后可以使用所有官方 Manjaro 的密钥填充密钥环 Linux
pacman-key --populate archlinux manjaro
.
无法准备交易(无效或损坏的数据库)
这里是由于实际的(有故障的)镜像服务器传送垃圾。
注释掉那些标准服务器并使用高质量的服务器,例如
ftp://ftp5.gwdg.de/pub/linux/archlinux/community/os/x86_64/
太糟糕了 /etc/pacman.conf 的评论太差了,好像故意无助和无能,总是含糊不清,从来没有具体的帮助。 这是 pacman 似乎无穷无尽的错误中的最后一个错误。密钥无法管理,服务器一团糟,库拼写混乱。我花了超过 1 天的时间来完成这个可怕的 Arch 体验。
如果还是有错误。试试这个:
sudo find /var/cache/pacman/pkg/ -iname "*.part" -exec rm {} \;
它会删除 .part 文件,这会导致 "invalid or corrupted package" 错误。删除它们后,运行 这个:
sudo pacman -Syyu
如果没有丢失任何密钥,这应该可以解决问题。
以下内容适用于 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