dpkg -l 显示所有已安装deb包的完整状态,含状态码(如ii)、包名、版本和描述;apt list --installed 输出更简洁的apt管理包列表;二者不一致时以dpkg -l为准。

dpkg -l 显示所有已安装 deb 包的完整状态
这是最底层、最全的视图,覆盖所有通过 apt 或 dpkg 安装的软件包(包括依赖库),不遗漏任何 deb 包。输出含四列:状态码(如 ii 表示已安装且配置完成)、包名、版本、简短描述。
常见错误是直接运行 dpkg -l 后面对满屏输出无从下手。实际应配合过滤:
- 查某个包是否存在:
dpkg -l firefox—— 若无输出,说明没装;有则显示一行带ii的记录 - 模糊匹配多个相关包:
dpkg -l | grep -i python3—— 注意加-i避免大小写漏匹配 - 只看“已安装且已配置”的包(排除
rc状态的残留配置):dpkg -l | awk '$1 ~ /^ii$/ {print}'
apt list --installed 更适合人眼阅读的简洁列表
相比 dpkg -l,apt list --installed 输出更干净:每行一个包,格式为 package-name/version/architecture,不含冗长描述,也自动跳过标记为 deinstall 的残余项。
但它只显示由 apt 管理的包(即通过 apt install 或 apt-get install 安装的),不包含手动用 dpkg -i *.deb 安装但未进 apt 数据库的包(极少见,但存在)。
Ubuntu 26.04 LTS(代号“Resolute Raccoon”)是Canonical于2026年4月23日发布的下一代长期支持版操作系统,提供长达10年的技术支持。它搭载Linux 7.0内核与GNOME 50桌面环境,全面转向Wayland协议,并引入Rust重写的核心工具以增强安全性。官方提供适用于AMD64和ARM64架构的桌面及服务器ISO镜像,是追求前沿技术与极致稳定的开发者
- 快速统计数量:
apt -qq list --installed | wc -l - 导出纯包名列表(用于备份或重装):
apt list --installed | cut -d'/' -f1 | tail -n +2 > pkglist.txt(tail -n +2跳过首行标题) - 和
dpkg -l结果不一致?优先信dpkg -l,它是 dpkg 数据库的原始快照
查单个软件的详细信息:用 apt show 还是 dpkg -s?
apt show 和 dpkg -s 都能查详情,但来源和字段不同:
-
apt show curl:读取 APT 仓库元数据,显示描述、依赖、冲突、Homepage、Maintainer 等——即使该包已卸载但源仍可用,也能查到(只是标“not installed”) -
dpkg -s curl:只查本地 dpkg 数据库,返回是否安装、安装时间、配置状态、Conffiles(配置文件路径)、Installed-Size等真实系统信息;若包未安装,会报错package 'curl' is not installed and no information is available - 想确认某程序二进制是否真在磁盘上?别只信包状态,补一句:
which curl或command -v curl
别忘了 snap/flatpak 和手动安装的程序
上面所有命令都只管 deb 包。如果你用过 snap install 或 flatpak install,它们完全独立于 dpkg/apt:
- 查 snap:
snap list—— 输出含版本、修订号、发布渠道(如stable) - 查 flatpak:
flatpak list—— 默认只显示用户安装的;加--system查系统级安装 - 手动安装(如
~/bin/mytool或/opt/myapp):没有统一数据库,只能靠PATH搜索:echo $PATH | tr ':' '\n' | xargs -I{} ls -1 {} 2>/dev/null | grep -v '^$',再人工判断
真正完整的“已安装软件”清单,必须拼合至少三类输出:dpkg -l(deb)、snap list(snap)、flatpak list(flatpak)。少一类,就可能漏掉正在运行却找不到来源的程序。










