问题描述
我经常需要检查安装了哪些软件包,并使用以下命令:
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>
-
ii
是什么意思? -
还有什么其他的标志?
-
如何阅读标志? (因为解释相当复杂,国际海事组织)
谢谢。
最佳解决办法
在系统中哪里可以找到这些信息
您可以在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)
每个领域的描述
从前三行可以看出:
第一个字母 – >所需的封装状态(“selection state”):
-
你……未知
-
我…安装
-
r …删除/卸载
-
p …清除(删除包含配置文件)
-
h …保持
第二个字母 – >当前包状态:
-
n … not-installed
-
我…安装
-
c … config-files(仅安装配置文件)
-
你…解开包装
-
F … half-configured(配置由于某种原因失败)
-
h … half-installed(由于某种原因安装失败)
-
W … triggers-awaited(包正在等待来自另一个包的触发器)
-
t … triggers-pending(包已被触发)
第三个字母 – >错误状态(您通常不应该看到第三个字母,而是一个空格):
-
R … reinst-required(包装破损,需要重新安装)
次佳解决办法
第一个字母显示包的预期状态。第二个字母显示包的当前状态。
例如:
ii
的意思是’它应该被安装并被安装’,而rc
意味着’It’s被移除/卸载,但它的配置文件仍然存在’
第三种解决办法
因为我的代表很低,所以我不能评论回答人们在哪里获得这些信息的问题。在查看了dpkg和相关程序的main.c代码的源代码之后,我发现了我正在寻找的东西。
阅读-l |的信息–list输出在
man dpkg-query
而不是在
man dpkg
在这些情况下,dpkg仅充当front-end