首页/系统/信创系统运维速查/dpkg 本地包管理与查询
命令与包管理65 条

dpkg 本地包管理与查询

deb 体系的底层工具:-i 装本地 deb、-l 列已装、-L 查文件、-S 反查归属、-r/-P 卸载;apt 负责依赖,dpkg 直接干活。

信创系统运维速查系统更新于 2026-10-13

dpkg 是干什么的

dpkg 是 deb 体系的底层包工具:直接处理本地 .deb 文件的安装、查询与卸载,但不负责解析依赖,依赖由 apt 负责。统信 UOS 等 DEB 系发行版上都用它做底层操作。日常排障中,dpkg 的查询能力比安装能力更常用:查文件归属、查包内文件清单都靠它。

基本信息

安装本地包dpkg -i pkg.deb
列出已装包dpkg -l
查包内文件dpkg -L 包名
反查文件归属dpkg -S /path/file
卸载-r 保留配置,-P 连配置一起清除

典型使用场景

  • 离线环境安装厂商提供的 deb 包
  • 查某个文件属于哪个已安装包
  • 确认软件安装后在磁盘上放了哪些文件
  • 卸载后清理残留配置,避免影响重装
  • 核对系统里是否装了某个版本的包

安装与查询示例

安装与查询示例
sudo dpkg -i ./app_1.0_arm64.deb      # 安装本地 deb 包
sudo apt -f install                   # 补齐未满足的依赖
dpkg -l | grep app                    # 确认已安装及版本
dpkg -L app | head -20                # 查看包内文件清单
dpkg -S /usr/bin/xx                   # 反查文件属于哪个包
dpkg -s app | grep -E 'Version|Status'   # 查看包状态与版本
sudo dpkg -r app && sudo dpkg -P app  # 先卸载,再清除残留配置

常用参数

参数作用注意点
-i安装本地 deb 包不解析依赖,需 apt 收尾
-l列出已安装包配合 grep 精确匹配
-L列出包内文件确认安装路径时使用
-S按文件反查包路径要写绝对路径
-P卸载并清除配置比 -r 更彻底,慎用
--configure -a完成未配置的包装完后状态异常时使用
dpkg -i 报依赖不满足是正常现象,因为 dpkg 不做依赖解析;随后执行 apt -f install 补齐依赖,这是 deb 系的标准收尾动作。

典型排障用法

  • 查文件属于哪个包:dpkg -S 加绝对路径
  • 查包在磁盘上放了哪些文件:dpkg -L 包名
  • 安装异常时看状态字段是否处于半安装
  • 用 apt -f install 收尾处理未满足依赖
  • 离线环境先确认本地包与系统架构一致

易错点

  • 用 dpkg -i 装完不跑 apt -f install:包会停在未配置状态,程序可能无法正常使用
  • 混淆 -r 与 -P:-r 保留配置文件,残留配置会在重装或换版本时报错,需要彻底清除时用 -P
  • 手工删除包目录代替卸载:dpkg 数据库里仍留有记录,后续安装同包会报冲突
  • 忽略包状态:dpkg -l 输出行的状态字段显示未配置或半安装时,要先修好再继续其他操作
  • 用 dpkg -i 装架构不匹配的包:会直接报错或留下半安装状态,安装前核对包名中的架构标识

数据来源与参考

  • dpkg 手册(man dpkg)
  • Debian 管理员手册
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌