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 条目。

相关推荐
迪康Defender6 小时前
政企内网终端安全建设:资产‑管控‑防护‑审计闭环能力拆解
运维·网络·安全·web安全·终端安全管理
Neighbor_OldY6 小时前
【实战复盘】文件上传漏洞检测与应急处置:校验绕过、图片马与WebShell的排查修复指南
运维·前端·web安全
米糕闯编程7 小时前
鱼香ros2(一)在ubuntu中安装ros2
linux·运维·ubuntu·机器学习
数字孪生视频孪生7 小时前
三维实时重构异构底座 核工危化无感定位跨境轨迹一屏统揽
大数据·运维·人工智能·重构·架构
Huangjin007_7 小时前
【Linux 系统篇(十八)】进程(六) :环境变量
linux·运维·服务器
ShineWinsu7 小时前
对于MySQL:数据库的操作的解析
linux·数据库·c++·mysql·面试·笔试·库的操作
cnnews7 小时前
Ubuntu 编译 postmarketOS
linux·运维·arm开发·ubuntu·github·音视频
w01_02_037 小时前
linux, 桌面, 自启动。
linux·运维·服务器
云飞云共享云桌面7 小时前
SolidWorks+AutoCAD,多并发。可以多人共享一台设计服务器吗
运维·服务器·3d·自动化·制造
伩仁7 小时前
WSL2 跑起 Web 服务后,本机和局域网设备怎么都能访问?一套两步法彻底搞懂
运维