Linux 上使用 dpkg 命令指南
dpkg 命令是用于在基于 Debian 的 Linux 发行版中管理 .deb 软件包的核心工具,包括 Ubuntu 和 Linux Mint。虽然 apt 和 synaptic 等工具提供了更多自动化和易用性,但 dpkg 让你能够对软件包的安装、移除和检查进行精确的底层控制。无论你是 Linux 初学者还是系统管理员,了解如何使用 dpkg 都能帮助你调试问题、手动安装软件包,并管理标准仓库之外的软件。
什么是 dpkg?
dpkg 是 Debian Package 的缩写,是一个用于安装、配置、移除和检查 .deb 软件包的命令行工具。与 apt 不同,它不会自动解决依赖关系,因此它更直接,但如果使用不慎,也更容易出错。
基本 dpkg 命令
安装 .deb 软件包
sudo dpkg -i package-name.deb
此命令会安装一个
.deb文件。如果缺少依赖项,请运行:
sudo apt-get install -f
这将通过下载缺失的软件包来修复损坏的依赖关系。
移除软件包
移除软件包但保留配置文件:
sudo dpkg -r package-name
移除软件包及其配置文件:
sudo dpkg -P package-name
列出已安装的软件包
dpkg -l
这会以表格格式列出所有已安装的软件包,包括:
- 状态(例如,ii 表示已安装)
- 软件包名称
- 版本
- 架构
- 描述

这张截图显示了 dpkg -l 如何输出系统上当前已安装的软件包完整列表。你可以使用 grep 滚动或筛选此列表:
dpkg -l | grep apache
检查 .deb 文件
在不安装的情况下查看软件包元数据:
dpkg -I package-name.deb
列出 .deb 中包含的文件:
dpkg -c package-name.deb
与dpkg
dpkg相关的高级工具
dpkg 与多种配套工具协同工作:
- dpkg-query: 查询软件包信息
- dpkg-deb: 创建、提取或检查 .deb 文件
- dpkg-divert: 管理文件覆盖
- dpkg-statoverride: 设置文件权限覆盖
这些工具对于打包、调试和底层软件包管理都很有用。
常见问题
- dpkg 不会解决依赖关系。如果你安装了依赖其他软件包的软件包,就必须手动解决这些依赖,或者之后使用 apt。
- 从第三方来源安装软件包时,将 dpkg -i 与 apt-get install -f 结合使用是一个好习惯。
- 除非你清楚自己在做什么,否则不要单独使用 dpkg——错误的使用可能会破坏你的软件包管理器状态。
总结
dpkg 命令是 Debian 软件包生态系统中的一个重要工具。虽然与 apt 相比它对初学者不够友好,但它功能强大且灵活,尤其是在你需要以下操作时:
- 安装本地 .deb 文件
- 审计或排查软件包安装问题
- 执行底层软件包操作
理解 dpkg 能让你完全掌控你的 Linux 环境。


