在 Debian 系统里所谓“extract 报错”,通常出现在解包 .deb 文件、使用 dpkg -x / dpkg-deb -x、或 apt 解包阶段。下面按常见场景 + 排查步骤来说明。
不同场景报错含义不同:
dpkg-deb -x xxx.deb ./out
dpkg -i xxx.deb
dpkg: error processing archive ... (--unpack)
报错示例
failed to write (No space left on device)
✅ 排查:
df -h
df -i # inode 是否用满
✅ 解决:
/var/cache/apt/archives报错示例
cannot create directory ‘xxx’: Permission denied
✅ 排查:
whoami
ls -ld 目标目录
✅ 解决:
sudo/tmp)报错示例
dpkg-deb: error: failed to read archive `xxx.deb'
✅ 排查:
file xxx.deb
ls -l xxx.deb
md5sum xxx.deb
✅ 解决:
apt-get download 包名
# 或重新下载
报错示例
package architecture (amd64) does not match system (arm64)
✅ 排查:
dpkg --print-architecture
file xxx.deb
✅ 解决:
multiarch报错示例
trying to overwrite 'xxx', which is also in package yyy
✅ 排查:
dpkg -S 文件路径
✅ 解决:
dpkg -i --force-overwrite xxx.deb
# 或先卸载冲突包
报错示例
subprocess pre-installation script returned error exit status 1
✅ 排查:
dpkg --audit
dpkg -l | grep -i ^.[A-Z]
✅ 解决:
sudo dpkg --configure -a
sudo apt -f install
dpkg-deb -xv xxx.deb out/
dpkg-deb -x xxx.deb out/
dpkg-deb -e xxx.deb out/DEBIAN
dpkg-deb -c xxx.deb
sudo apt clean
sudo apt update
sudo apt -f install
sudo dpkg --configure -a
如果你愿意,可以把完整报错内容贴出来,我可以精准判断是哪一种:
这样能少走很多弯路。