在 Debian 体系中,通常我们说的 “extract” 多指从 .deb 包中提取文件,或从 源码包(dsc / tar.xz)中解包。下面按常见场景给你一些实用技巧。
.deb 包中提取文件(最常用)dpkg-deb -x package.deb ./outdir
./outdirdpkg-deb -R package.deb ./outdir
目录结构:
outdir/
├── DEBIAN/ # 控制文件
└── usr/
└── etc/
dpkg-deb -c package.deb
dpkg-deb -I package.deb # 查看控制信息
dpkg-source(官方方式)dpkg-source -x package_1.0-1.dsc
✅ 会自动:
orig.tar.xzdebian/patchesapt source(最方便)apt source package_name
前提:
# /etc/apt/sources.list 中开启 deb-src
deb-src http://deb.debian.org/debian bookworm main
然后:
apt update
.deb 中提取单个文件ar x package.deb
tar -xf data.tar.xz path/to/file
apt-get download nginx
dpkg-deb -x nginx_*.deb ./nginx-files
Debian 常见压缩:
data.tar.xz(常见)data.tar.zst(新版)data.tar.gz查看:
file data.tar.*
解压对应格式:
tar -xf data.tar.zst
✅ 检查架构是否匹配
dpkg-deb -I package.deb | grep Architecture
✅ 防止权限问题
sudo dpkg-deb -x package.deb /target
✅ CI / 脚本中推荐
dpkg-deb -x "$PKG" "$OUT" || exit 1
❌ 用 unzip 解 .deb(不行,它是 ar 格式)
✅ 正确顺序是:ar → tar
如果你指的是 “Debian 系统安装时的 extract 阶段”、“live-build 提取 rootfs”,或 “docker 中提取 deb”,可以告诉我具体场景,我可以给更针对性的方案。