Linux怎么排查软件包哈希校验不一致无法安装

夜涛吖_3108

夜涛吖_3108

2026-10-27

211人浏览

原创

报错“THESE PACKAGES DO NOT MATCH THE HASHES”是pip哈希校验失败,主因包括官方包更新、镜像同步滞后、本地缓存损坏或网络中断;推荐先执行pip cache purge清理缓存,再用--no-cache-dir重装,或删requirements.txt中--hash行后安装。

linux怎么排查软件包哈希校验不一致无法安装

pip install 报错 “THESE PACKAGES DO NOT MATCH THE HASHES” 怎么办

这是 pip 在启用 --require-hashes 模式时的硬校验失败,不是警告,是直接中断安装。错误里会明确列出哪个包、期望的 sha256 值和实际算出的值——这两个字符串只要有一个字符不同,就说明文件内容已变。

常见原因包括:

  • PyPI 上该包被重新上传(同一版本号,但内容变更,比如修复了 CVE 后重发)
  • 你用了非官方镜像源,而该镜像同步滞后或缓存污染
  • 本地 pip 缓存中存了旧版或损坏的 wheel 文件
  • 网络代理/CDN 中途篡改或截断了下载流(尤其在企业出口或某些 ISP 环境下)

实操建议:

  • 先清缓存:pip cache purge,再重试安装
  • 强制跳过缓存重拉:pip install --no-cache-dir -r requirements.txt
  • 确认当前源地址:pip config get global.index-url,和项目文档要求的是否一致
  • 如果确定要更新哈希值(比如你信任新包),用 pip install --generate-hashes --dry-run -r requirements.txt 2>&1 | grep "sha256" 提取新哈希,手动替换或用脚本更新 requirements.txt

apt 下载 deb 包时提示 Hash Sum Mismatch 怎么定位

这类错误通常出现在 apt-get update 或 apt-get install 过程中,日志里会显示类似 Hash Sum mismatch 或 Failed to fetch ... Hash Sum mismatch。它和 pip 的哈希失败逻辑不同:apt 校验的是整个 Packages.gz 元数据文件或单个 .deb 的 SHA256 字段,不是用户可控的配置项。

真正的问题往往不在包本身,而在传输链路:

  • 本地 apt 缓存损坏:sudo apt clean 清空 /var/lib/apt/lists/ 和 /var/cache/apt/archives/
  • 代理或 ISP 中间设备(如透明代理、缓存网关)不支持 HTTP pipelining,导致响应体错乱 —— 此时需在 /etc/apt/apt.conf.d/99FixHashCheckSumError 中写入:
    Acquire::http::Pipeline-Depth "0";
    Acquire::http::No-Cache "true";
  • 源服务器返回了 304 Not Modified 但 ETag 不匹配,可临时禁用条件请求:Acquire::http::Redirections "0";

注意:不要盲目 apt --fix-missing install,它不会重校验元数据,可能跳过真正出问题的包。

Obsidian (Linux)
Obsidian (Linux)

操作 Obsidian 库(纯 Markdown 笔记),并通过 notesmd-cli 实现自动化。

下载

怎么验证一个已安装的 deb/rpm 包文件没被篡改

安装后的校验不是“多此一举”,而是确认 dpkg -i 或 rpm -ivh 过程是否完整落地。Linux 发行版原生提供对应命令,无需额外工具:

  • Debian/Ubuntu 系统:dpkg --verify 包名(输出为空表示全部文件 OK;dpkg --verify --show-files 包名 可看具体路径)
  • RHEL/CentOS/Fedora 系统:rpm -V 包名(输出如 S.5....T. c /etc/config.conf 表示 size、MD5、mtime 异常;. 表示正常)
  • 若只想查某个文件归属:dpkg -S /usr/bin/foo 或 rpm -qf /usr/bin/foo,再对其所属包做完整校验

这些命令校验的是包管理器数据库里记录的原始哈希(deb 用 md5sums,rpm 用 sha256),比手动 sha256sum 更可靠——因为它们还检查权限、属主、符号链接等元数据。

为什么自己用 shasum 算出来的值和官方公布的对不上

最常踩的坑是:没注意下载的是源码包(.tar.gz)还是二进制分发包(.whl、.deb、.rpm),或者解压后去校验子目录里的文件。官方发布的 SHA256SUMS 文件,几乎总是针对**原始下载文件本身**,而不是解压后的内容。

正确做法:

  • 确保你 shasum -a 256 foo.tar.gz 算的是那个刚下载完、未经任何处理的文件
  • 确认下载过程没被浏览器自动解压(比如 Chrome 对 .zip 的默认行为)
  • 核对大小:ls -l foo.tar.gz 和官网标称 size 是否一致,不一致直接重下
  • 若官网只提供 GPG 签名(如 Linux 内核),应先用 gpg --verify SHA256SUMS.gpg SHA256SUMS 验证清单真伪,再用清单校验文件

哈希本身没有“复杂逻辑”,但传输、缓存、解压、权限继承这些环节,每一个都可能悄悄改变字节流。校验必须卡在「下载完成但尚未解压」这个瞬间,否则就失去了意义。

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
磁盘配额是什么
磁盘配额是什么

磁盘配额是计算机中指定磁盘的储存限制,就是管理员可以为用户所能使用的磁盘空间进行配额限制,每一用户只能使用最大配额范围内的磁盘空间。php中文网为大家提供各种磁盘配额相关的内容,教程,供大家免费下载安装。

2023.06.21

4250

4

如何安装LINUX
如何安装LINUX

本站专题提供如何安装LINUX的相关教程文章,还有相关的下载、课程,大家可以免费体验。

2023.06.29

3573

10

linux find
linux find

find是linux命令,它将档案系统内符合 expression 的档案列出来。可以指要档案的名称、类别、时间、大小、权限等不同资讯的组合,只有完全相符的才会被列出来。find根据下列规则判断 path 和 expression,在命令列上第一个 - ( ) , ! 之前的部分为 path,之后的是 expression。还有指DOS 命令 find,Excel 函数 find等。本站专题提供linux find相关教程文章,还有相关

2023.06.30

2833

5

linux修改文件名
linux修改文件名

本专题为大家提供linux修改文件名相关的文章,这些文章可以帮助用户快速轻松地完成文件名的修改工作,大家可以免费体验。

2023.07.05

6910

7

linux系统安装教程
linux系统安装教程

linux系统是一种可以免费使用,自由传播,多用户、多任务、多线程、多CPU的操作系统。本专题提供linux系统安装教程相关的文章,大家可以免费体验。

2023.07.06

6562

7

linux查看文件夹大小
linux查看文件夹大小

Linux是一种自由和开放源码的类Unix操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。linux怎么查看文件夹大小呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

2023.07.20

3773

8

linux查看ip命令
linux查看ip命令

本专题为大家提供linux查看ip命令相关文章内容,感兴趣的朋友可以免费下载体验试试。

2023.07.20

3265

4

linux查看cpu使用率
linux查看cpu使用率

在linux的系统维护中,可能需要经常查看cpu使用率,分析系统整体的运行情况。本专题为大家带来了linux查看cpu使用率的相关文章,感兴趣的朋友千万不要错过了。

2023.07.25

3499

6

linux查找文件命令
linux查找文件命令

Linux是一种自由和开放源码的类Unix操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

2023.07.31

297

3

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Python uv官方安装与入门文档
Python uv官方安装与入门文档

共0课时 | 0人学习

Buffalo框架快速入门指南
Buffalo框架快速入门指南

共0课时 | 0人学习

Valgrind支持平台说明
Valgrind支持平台说明

共0课时 | 0人学习