dpkg 是什么
dpkg 是 Debian 系发行版的底层包工具,直接操作 .deb 文件与本地包数据库,自身不解析依赖。它的强项与 rpm 类似,集中在查询与修复:-l 列出已安装包,-L 列出某个包装了哪些文件,-S 反查文件属于哪个包,-i 安装本地 deb,--configure -a 修复停在半配置状态的事务。apt 在底层调用的就是 dpkg,所以当 apt 反复报错时,往往要回到 dpkg 的事务状态上找原因。
基本信息
| 适用平台 | Debian、Ubuntu 及其衍生发行版 |
|---|---|
| 命令语法 | dpkg [选项] |
| 查询类选项 | -l 列出匹配的包 -L 列出包内文件 -S 反查文件归属 -s 显示包状态详情 |
| 操作类选项 | -i 安装本地 deb -r 卸载但保留配置 -P 卸载并清除配置 --configure -a 修复未完成事务 |
| 权限说明 | 安装、卸载与修复事务需要 root,查询普通用户即可 |
典型使用场景
- 本地装包:内网没有仓库时用 -i 安装下载好的 deb 文件
- 反查归属:确认某个命令或配置文件来自哪个包
- 修复环境:apt 报事务中断时用 --configure -a 收尾
- 版本核对:确认某包当前安装的版本与架构
- 清理残留:用 -P 彻底清除不再需要的包与配置
常用示例
常用示例
dpkg -l | grep nginx
sudo dpkg -L nginx | head
sudo dpkg -S /usr/sbin/nginx
sudo dpkg -i package.deb # 装本地包,依赖需另行补齐
sudo apt-get -f install # 依赖不全时让 APT 补齐
sudo dpkg --configure -a # 修复中断的事务
sudo dpkg -P nginx # 卸载并清除配置
apt-cache policy nginx # 结合仓库信息查看候选版本apt 与 dpkg 分工
| 维度 | dpkg | apt |
|---|---|---|
| 依赖解析 | 完全不解析依赖 | 自动解析并下载依赖 |
| 数据来源 | 本地 deb 文件与已安装数据库 | 远端仓库索引加本地数据库 |
| 典型用途 | 查询、取证、修复半配置状态 | 日常安装、升级与卸载 |
| 出错表现 | 报依赖或状态问题需手工处理 | 通常能给出处理建议 |
用 dpkg -i 装包后经常缺依赖,执行 apt-get -f install 让 APT 补齐,这是本地安装 deb 的标准收尾动作。
dpkg -i 失败会让包停在未配置状态,后续 apt 操作会持续报错。必须用 dpkg --configure -a 收尾,否则问题会一直传递下去。