码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • pacman 升级软件包提示 “failed to commit transaction (invalid or corrupted package)“


    很久没打开 WSL 2 里面的 Arch Linux, 想着更新一下软件包, 执行 pacman -Syu, 遇到 “signature is marginal trust” “failed to commit transaction (invalid or corrupted package)” 等错误.

    执行 pacman -Syu 报错
    观察输出的信息, 似乎提到了 “签名” “信任” 的问题 (signature … is marginal trust).

    可能当时自己搜索时关键字没提供完整或是什么问题, 总之没能解决问题, 于是可怜兮兮去问友人, 然后被告知 ArchWiki 上就有, 还被责怪为什么不先去看 Wiki.

    友人回复挺快, 而且 ArchWiki 的 Pacman 页面 上边 Troubleshooting 章节下的第二点就是, 估计也是常见的问题. ArchWiki 上边的其他记录也挺全面详实的.

    果然遇事还是应该先看 Wiki, 写这篇博文也是为了记录这个教训.

    总之, 在 ArchWiki 的对应部分, 也就是 “Failed to commit transaction (invalid or corrupted package)” error, 可以看到这样一段话:

    That same error may also appear if archlinux-keyring is out-of-date, preventing pacman from verifying signatures. See Pacman/Package signing#Upgrade system regularly for the fix and how to avoid it in the future.

    大概意思是说:

    同样的错误也可能是 archlinux-keyring 这个软件包过时所导致的, 使得 pacman 无法进行签名验证. 参考 Pacman/关于软件包签名#定期更新系统 以获得问题的解决方案以及如何避免在未来遇到同样问题.

    点进文字中链接的这个页面可以看到:

    Upgrading the system regularly via pacman#Upgrading packages prevents most signing errors. If delay is unavoidable and system upgrade gets delayed for an extended period, manually sync the package database and upgrade the archlinux-keyring package before system upgrade:

    # pacman -Sy archlinux-keyring && pacman -Su
    
    • 1

    This command is not considered a partial upgrade since it syncs the package database and upgrades the keyring package first. Both must be processed just before starting system upgrade to ensure signatures of all upgraded packages can be properly verified.

    大概意思是说:

    根据 pacman#升级软件包 中的内容定期升级系统可以避免大部分的签名错误. 如果遇到了不可避免的延迟, 导致系统升级 (system upgrade) 比平时延迟了更长一段时间, 则需要使用如下命令, 在系统升级前手动同步软件包数据库并升级 archlinux-keyring 软件包:

    pacman -Sy archlinux-keyring && pacman -Su
    
    • 1

    这个命令并不会被视作一次 “部分升级”, 因为它在同步了软件包数据库后只是首先安装了 keyring 软件包. 在进行系统升级前, 两项工作都必须进行, 以确保所有被升级的软件包的签名都能被正确验证.

    如上, 签名无法验证导致软件包提示损坏的问题应该就能够解决了.

  • 相关阅读:
    聚焦关键要素|打造智慧园区综合运营决策平台解决方案
    SpringCloudGateway实现数字签名与URL动态加密
    表格table设置css3首行在滚动的时候悬停使用sticky属性
    25-SpringBoot 自定义starter
    算法-动态规划专题
    通过WebSocket实现实时系统通知,以后再也不能装作没看到老板的通知了~~
    【Python入门】文件内容操作
    增速4755%!撬动海外美妆市场,赛盈分销洞察美国市场年终布局方向!
    C/C++ 恨透了 double free or corruption
    腾讯发布财报,地主家也没有余粮了?
  • 原文地址:https://blog.csdn.net/henry_23/article/details/126676082
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号