ubuntu dpkg -l 输出第一列解释

dpkg -l 的输出第一列实际上是 3 个字符的状态字段,不是单纯一个状态。

你这里:

复制代码
ii  docker-ce
rc  docker.io

分别是这 3 个位置:

复制代码
     ① ② ③
     ↓ ↓ ↓
    Want  Status  Error

完整含义是:

位置 名称 含义
第 1 个字符 Want 用户希望这个包处于什么状态
第 2 个字符 Status 当前包实际处于什么状态
第 3 个字符 Eflag 是否存在错误/异常标记

不过 dpkg -l 默认只显示比较常见的组合,所以你经常看到的是 ii、rc、un 等。


1. 第一位:Want ------ 用户期望状态

第一位一共有这些状态:

字符 含义
u Unknown,未知
i Install,用户希望安装
r Remove,用户希望卸载
p Purge,用户希望彻底清除配置
h Hold,保持当前版本/状态

例如:

复制代码
ii
^^
||
|+-- 当前状态
+--- 用户希望安装

2. 第二位:Status ------ 实际状态

第二位常见的状态:

字符 含义
n Not-installed,未安装
i Installed,已安装
c Config-files,只剩配置文件
u Unpacked,已解包但还没配置
f Failed-config,配置失败
h Half-installed,安装了一半
w Triggers-awaiting,等待触发器
t Triggers-pending,有触发器待处理

这里特别注意:

复制代码
rc

不是一个状态叫 rc,而是:

复制代码
r + c

即:

复制代码
r = 用户要求卸载
c = 当前只剩配置文件

所以:

复制代码
rc docker.io

就是:

docker.io 已经被卸载,但是配置文件状态还留在 dpkg 数据库里。


3. 第三位:Error flag

第三位通常是:

字符 含义
空格 没有错误
R Reinst-required,需要重新安装

所以正常情况下你看到:

复制代码
ii␠

第三个字符实际上是一个空格。

例如:

复制代码
ii  docker-ce

实际上可以理解为:

复制代码
i i " "
│ │ └── 无错误
│ └──── 已安装
└────── 用户希望安装

你的输出逐个解释

docker-ce

复制代码
ii  docker-ce

实际上:

复制代码
i i " "
│ │
│ └── Installed:已经安装
└──── Want=Install:用户希望它安装

所以:

正常安装状态。


docker.io

复制代码
rc  docker.io

实际上:

复制代码
r c " "
│ │
│ └── Config-files:软件已经卸载,只剩配置状态
└──── Want=Remove:用户希望卸载

所以:

软件已经没了,只剩 dpkg 的配置文件状态记录。

这就是你前面执行:

复制代码
dpkg -L docker.io

出现:

复制代码
Package 'docker.io' does not contain any files (!)

的原因。


如果看到 un

例如:

复制代码
un  xxx

意思是:

复制代码
u = Unknown
n = Not-installed

即:

dpkg 没有安装这个包。

实际上 dpkg -l 的输出里会包含大量这种状态。


最重要的一张表

你平时排查服务器时,记住这几个就够了:

dpkg -l 含义
ii 已安装,正常
rc 软件已卸载,但配置状态/配置文件残留
un 未安装
iU 已解包,但还没完成配置
iF 配置失败
h? 与 hold/半安装等状态有关,需要进一步看具体组合
?? 其他组合,查具体两位含义

另外,dpkg -l 的状态组合理论上不止这些,因为它是三个字段的组合,而每个字段都有多个取值。

你这台机器目前最关键的是:

复制代码
ii  cri-dockerd
ii  docker-ce
ii  docker-ce-cli
rc  docker.io
ii  nvidia-docker2

也就是说,真正安装着 Docker 的是 docker-ce,不是 docker.io;docker.io 只是一个残留的 rc 条目。

相关推荐
小杨爱科普19 小时前
制造业上自动化改造,改造部分的专利到底归谁
运维·经验分享·自动化
陈希12320 小时前
Linux 服务器性能排查手册(2026):CPU、内存、磁盘IO、网络四大瓶颈定位
linux·服务器·网络
方便面不加香菜21 小时前
Docker Container --容器及容器的操作案例详解
运维·docker·容器
测试界的小码农1 天前
【Linux 命令实战(03):文件创建、复制、移动与删除,掌握 touch、mkdir、cp、mv、rm】
linux·服务器·php
byte轻骑兵1 天前
实战 1:修改 BlueZ 源码,添加自定义开机日志
linux·aiot·bluez·电脑蓝牙·嵌入式蓝牙
叼烟扛炮1 天前
Linux 学习笔记(五十):网络层——IP 协议、子网划分与 NAT 魔法
linux·笔记·学习
叼烟扛炮1 天前
Linux 学习笔记(六十):单线程的逆袭——epoll 高并发服务器实战
linux·服务器·网络·笔记·学习·算法
AR-26710-1 天前
Linux Day32——实操五类资源告急排查
linux·运维
skywalk81631 天前
hive 常驻集群:像 OSPF 一样在线,像 git 一样可信
运维·人工智能·hive
StarsGreen1 天前
libva中的图像格式说明
linux