ubuntu dpkg -l 输出第一列解释

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

你这里:

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

分别是这 3 个位置:

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

完整含义是:

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

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


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.iodocker.io 只是一个残留的 rc 条目。

相关推荐
Splashtop高性能远程控制软件1 小时前
AI 落地的连接基建评估:消费品行业远程连接方案的四个技术维度(性能 / 精度 / 安全 / 统一管理)
运维·人工智能·安全·远程工作·splashtop
ITyunwei09872 小时前
技术管理者视角:AI 重构 ITSM 的四个工程化落点
运维·人工智能
叮咚侠3 小时前
Ubuntu 24.04 安装zabbix-agent 5.0 服务
linux·ubuntu·zabbix·zabbix-agent
666_qq_403882334 小时前
Tabstack 浏览器自动化实战应用指南
运维·自动化
左手厨刀右手茼蒿5 小时前
数据仓库的架构演进:从MySQL到ClickHouse到数据湖的工程化实践
linux·嵌入式·系统内核
左手厨刀右手茼蒿5 小时前
创业团队技术选型:别用大厂架构解决小团队问题
linux·嵌入式·系统内核
明志数科6 小时前
宇树科技IPO背后的产业逻辑:人形机器人从“讲故事“到“交数据“
运维·服务器·数据库
外滩运维专家6 小时前
验证码接口上线三天就被刷了,我后来加的几道防线
运维
跨境小彭6 小时前
店群运营实操复盘:批量活动申报自动化优化方案
大数据·运维·人工智能·自动化·跨境电商·temu·temu电商运营