诸如“ ii”,“ rc”之类的各种dpkg标志是什么意思?


92

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

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>
  1. 什么ii意思
  2. 还有其他标志吗?
  3. 如何阅读标志?(因为解释很复杂,IMO)

谢谢。

Answers:


127

在系统中哪里可以找到此信息

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

dpkg -l | head -3

复制此处以供参考:

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)                    

每个字段的说明

从前三行可以看到:

首字母 ->所需的包装状态(“选择状态”):

  • 你...未知
  • 我...安装
  • r ...删除/卸载
  • p ...清除(删除包括配置文件)
  • h ...按住

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

  • n ...未安装
  • 我...安装
  • c ... config-files(仅安装配置文件)
  • U ...打开包装
  • F ...半配置(由于某种原因配置失败)
  • h ...半安装(由于某种原因安装失败)
  • W ...等待触发器(程序包正在等待另一个程序包的触发器)
  • t ...触发器未决(包已被触发)

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

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

2
(标题的第二,第三和第四行中的竖线和斜线是指向第一,第二和第三列的“箭头”,以帮助您理解更深层解释的内容。)
Ubuntourist 2010年

1
我在哪里可以阅读这份清单?我尝试了man dpkg,但它不在那里。
Fabrizio Regini 2014年

1
@FabrizioRegini再试一次,它位于dpkg手册页的顶部(“关于包装的信息”部分)。:)
htorque 2014年

它在dpkg手册页的何处显示“ ii”,“ if”等的含义?
pmatulis 2014年

1
@FabrizioRegini运行man dpkg-query
jarno

27

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

因此,例如:

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


1
那么使用rc标签删除内核的配置文件是否安全?
火星李

10

由于我的代表人数很少,因此我无法发表评论以回答人们对从何处获取此信息的疑问。在查看了dpkg的源代码和相关程序的main.c代码之后,我找到了想要的东西。

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

man dpkg-query

不是

man dpkg

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


1
  1. 这意味着需要安装该软件包并已安装该软件包。

  2. 看到 man dpkg-query

  3. 在图例中的前三行中,等号后的替代方案中显示的大写字母分别是可能显示为第一字段中前三个字符的字母,但并非在相同情况下都全部显示,即某些字母以小写形式显示。第三个字符通常是空格。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.