'ii' 'rc' 等各种 dpkg 标志是什么意思?

the*_*cer 124 command-line dpkg

我经常需要检查安装了哪些软件包,我使用以下命令:

dpkg -l | grep foo

这给出了以下输出

Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Cfg-files/Unpacked/Failed-cfg/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name                       Version         Description
ii   foo                       <version>         <description>
Run Code Online (Sandbox Code Playgroud)
  1. 这是什么ii意思?
  2. 还有哪些标志?
  3. 如何阅读标志?(因为解释比较复杂,IMO)

谢谢。

hto*_*que 164

在系统中的何处可以找到此信息

您可以在 dpkg -l 输出的头部找到此信息,因为它只是一种格式约定:

dpkg -l | head -3
Run Code Online (Sandbox Code Playgroud)

复制到这里供参考:

Desired=Unknown/Install/Remove/Purge/Hold                                     
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)                    
Run Code Online (Sandbox Code Playgroud)

每个字段的描述

从前三行可以看出:

第一个字母-> 所需的包状态(“选择状态”):

  • 你……不详
  • 我...安装
  • r ... 删除/卸载
  • p ...清除(删除包括配置文件)
  • 呵……抱

第二个字母-> 当前包状态:

  • n ... 未安装
  • 我...安装
  • c ... config-files(仅安装配置文件)
  • 你...解压
  • F ... 半配置(由于某种原因配置失败)
  • h ... 安装到一半(由于某种原因安装失败)
  • W ... triggers-awaited(包正在等待来自另一个包的触发器)
  • t ... triggers-pending(包已被触发)

第三个字母-> 错误状态(您通常不应该看到第三个字母,而是一个空格):

  • R ...重新安装(包损坏,需要重新安装)

  • (标题的第二、第三和第四行中的竖线和斜线是指向第一、第二和第三列的“箭头”,以帮助您更深入地理解 htorque 所解释的内容。) (2认同)
  • @FabrizioRegini 运行`man dpkg-query`。 (2认同)

Pav*_* G. 32

第一个字母显示包裹的预期状态。
第二个字母显示包裹的当前状态。

例如:

ii表示“应该安装并已安装”,而
rc表示“已删除/卸载,但配置文件仍然存在”

  • 那么用rc标签删除内核的配置文件安全吗? (4认同)

小智 13

因为我的代表很低,我无法发表评论来回答人们关于从哪里获得这些信息的问题。在查看了 dpkg 和相关程序的 main.c 代码的源代码后,我找到了我要找的东西。

阅读 -l | 的信息 --list 输出在

man dpkg-query
Run Code Online (Sandbox Code Playgroud)

不是在

man dpkg
Run Code Online (Sandbox Code Playgroud)

dpkg 在这些情况下仅充当前端