【问题标题】:Cannot upgrade Archlinux (pacman -Syu not working)无法升级 Archlinux(pacman -Syu 不工作)
【发布时间】:2016-05-17 00:52:19
【问题描述】:

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

【问题讨论】:

  • 你安装了 package-query 和 yaourt 吗?如果是,您可能与 package-query 有冲突。尝试yaourt -S package-query,然后再次使用 pacman 开始升级。之后你需要重建你的包查询,因为它可能与新的 pacman 不兼容。
  • 一般情况下,好像本地安装了一个包,在archlinux官方存储库中没有管理)。您可以使用pacman -Qi pacman 检查哪些软件包需要您当前安装的 pacman 版本(在输出中查找“Required By”部分)。一个好的开始是看看列出的任何软件包是否出现在本地安装的软件包列表中(例如,通过 yaourt)pacman -Qm。如果你找到了,然后删除该软件包并再次尝试使用 pacman 升级。也可能与您添加的来自 multilib 或 xenlism-arch 存储库的包发生冲突。
  • 在尝试了您的解决方案 jham 之后,我已根据当前情况更新了最初的问题。请检查一下。谢谢。
  • yaourt -S package-query 帮了我大忙。
  • 现在只剩下aur.archlinux.org/packages/package-query-git。包查询本身不再存在。

标签: archlinux pacman-package-manager


【解决方案1】:

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

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

pacman -S archlinux-keyring

然后做剩下的:

pacman -Su

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

pacman-key --populate

但通常没有必要。

【讨论】:

  • 我删除了 /etc/pacman.d/gnupg 目录以重置所有密钥,pacman-key --populate 挽救了这一天
  • populate 步骤之后,另一个sudo pacman-key --refresh-keys 为我解决了这个问题。然后照常更新。
【解决方案2】:

我刚好遇到了同样的问题,用下面的方法解决了:

$ 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

【讨论】:

    【解决方案3】:

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

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

    【讨论】:

      【解决方案4】:

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

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

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

      sudo pacman -Syyu
      

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

      【讨论】:

      • 这在 Manjaro 安装中对我有用。在此之前我尝试了各种修复,但问题并没有消失。这成功了。
      【解决方案5】:

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

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

      【讨论】:

      • 你从哪个 URL 得到你的修复?此外,我也在使用 Manjaro 并遇到了这个障碍,但幸运的是,谷歌搜索我的错误消息(即使它只是第一次关键故障)找到了 4 天前的报告和解决方案forum.manjaro.org/t/…(警告:要修复,请遵循它直接链接然后是“如何解决 Manjaro 中的密钥环问题”的直接链接,对我来说完美无缺。它似乎与 urs 的修复基本相同,但给出了背景并{用 'sudo pacman -Syy && sudo pacman-key --refresh-keys' --why?} 替换了 pacman-key --init'。
      【解决方案6】:

      未能准备交易(无效或损坏的数据库

      这是由于实际(有故障的)镜像服务器发送垃圾。

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

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

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

      【讨论】:

        【解决方案7】:

        以下内容适用于 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
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-04-10
          • 2022-06-23
          • 2022-11-11
          • 2014-11-27
          • 1970-01-01
          • 2019-01-30
          相关资源
          最近更新 更多