少于 1 分钟阅读 次阅读

在 Debian/Ubuntu 系统中,dpkg -l 命令输出的状态标志实际上由 三个字母 组成(通常第三个字母为空白,所以大部分情况下看起来是两个字母)。

它们的结构如下:

  1. 第一位:Desired(期望状态)—— 你希望对这个软件包做什么。
  2. 第二位:Status(当前状态)—— 这个软件包现在的实际状态。
  3. 第三位:Error(错误标志)—— 只有出现严重问题时才会显示。

1. 常见状态组合(两字母)

除了 ii(正常安装)和 hi(锁定版本)之外,你在日常管理系统时最常遇到的组合如下:

状态组合 第一位 (期望状态) 第二位 (当前状态) 含义说明
rc r (Remove) c (Config-files) 已卸载,但保留了配置文件。 通常是使用了 apt remove 但没用 apt purge
un u (Unknown) n (Not-installed) 未安装,且状态未知。 系统知道有这个包,但从未安装过它。
pn p (Purge) n (Not-installed) 已彻底卸载。 软件包和它的所有配置文件都已经被清理干净。
iU i (Install) U (Unpacked) 已解包,但未配置。 包已经下载并解压,但安装过程被中断或尚未完成配置。
iF i (Install) F (Half-configured) 配置失败。 安装过程中执行配置脚本时发生了错误(通常伴随报错信息)。
ih i (Install) h (Half-installed) 半安装状态。 安装过程在中途被意外中断(如断电、强制关闭终端)。
hn h (Hold) n (Not-installed) 未安装,但被锁定。 阻止系统未来自动安装该软件包。

2. 状态字母详细拆解

如果你遇到了上面没列出的罕见组合,可以通过下面这个字母对照表自行拆解组合的含义:

第一位:期望状态 (Desired Action)

字母 英文全称 中文含义
u Unknown 状态未知(通常指从未安装过)
i Install 想要安装该软件包
r Remove 想要卸载该软件包(保留配置文件)
p Purge 想要彻底清除该软件包(连同配置文件一起删)
h Hold 锁定该软件包(保持当前版本,拒绝更新)

第二位:当前状态 (Current Status)

字母 英文全称 中文含义
n Not-installed 没有安装在系统上
i Installed 已经成功安装并配置完毕
c Config-files 只有配置文件残留在系统中
U Unpacked 已经解包,但还没有配置
F Half-configured 尝试了配置,但是中途失败了
h Half-installed 尝试了安装,但是中途失败了
W Triggers-awaiting 等待其他包的触发器响应
t Triggers-pending 触发器已挂起,等待处理

第三位:错误标志 (Error Flag)

注:第三位平时是空白的,只有出错才会显示字母。

字母 英文全称 中文含义
R Reinst-required 必须重新安装。 包损坏严重,必须先重装才能进行后续操作(常见组合如 iHR)。

留下评论