在 Debian 环境下,所谓 “Debian extract 结果” 通常指以下几种情况之一:
.deb 包中解包(extract)后的文件.dsc / apt-get source)解包后的内容dpkg-deb -x / dpkg-source -x 提取后的结果下面按常见场景说明如何验证 extract 结果是否正确、完整。
.deb 包解包结果dpkg-deb -x package.deb extract_dir
dpkg-deb -e package.deb extract_dir/DEBIAN
ls extract_dir
正常应包含:
DEBIAN/(控制信息)usr/、etc/、lib/ 等dpkg-deb -I package.deb
对比:
dpkg-deb -c package.deb
将输出文件列表与 extract_dir 实际文件对比。
dpkg-deb -e package.deb /tmp/ctrl
cat /tmp/ctrl/md5sums
然后:
cd extract_dir
md5sum -c ../ctrl/md5sums
dpkg-source -x package_1.0-1.dsc
ls package-1.0
应包含:
debian/ 目录dpkg-source --commit
或:
dpkg-source -b package-1.0
若未修改,应能重新生成 .dsc 和 .deb
sha256sum package_1.0.orig.tar.gz
与 .dsc 中 Files: 字段比对。
apt-get download package
dpkg-deb -x package.deb test_dir
验证:
apt-cache policy package
确认版本一致。
| 现象 | 可能问题 |
|---|---|
| 缺少 DEBIAN | 只用了 -x 没用 -e |
| md5sum 不匹配 | 文件被修改或损坏 |
| dsc 解包报错 | 缺 dpkg-dev |
| 架构不符 | 用错 amd64/arm64 |
dpkg-deb -x pkg.deb out
dpkg-deb -e pkg.deb out/DEBIAN
dpkg-deb -c pkg.deb
cat out/DEBIAN/md5sums | (cd out && md5sum -c)
如果你能说明:
我可以给你更精确的验证方案。