dpkg是基于Debian的Linux系统的包管理器
常用命令
安装
dpkg -i package.deb 安装package
删除
dpkg -r package或dpkg --remove package 删除package软件包,但保留配置文件dpkg -P package或dpkg --purge package 删除package软件包,且清除配置文件
查询
dpkg -l package-pattern 查看符合pattern的软件包dpkg -S package-pattern或dpkg --search package-pattern 在已经安装的软件包中搜索符合pattern的软件包dpkg -L package或dpkg --listfiles package 查看package软件包的安装目录信息dpkg -s package或dpkg --status package 查看package软件包的状态信息
dpkg数据库
dpkg -l 查看dpkg数据库

第一列是软件包状态标识符,共三个字符
第一个字符是期望值(Desired=Unknown/Install/Remove/Purge/Hold),包括:
u: Unknown,未知状态,意味着软件包未安装,且用户未发出安装请求i: Install,用户请求安装软件包r: Remove,用户请求卸载软件包p: Purge,用户请求清除软件包h: Hold,用户请求保持软件包版本锁定
第二列是软件包当前状态(Status=Not/Inst/Conf-files/Unpacked/half-conf/Half-inst/trig-aWait/Trig-pend)
n: Not,软件包未安装i: Inst,软件包安装并完成配置c: Conf-files,软件包安装过,现在删除了,但是配置文件还在u: unpacked,软件包被解包,但是还未配置f: halF-conf,试图配置软件包,但是失败了h: Half-inst,安装软件包未成功w: trig-aWait,触发器等待t: Trig-pend,触发器未决
第三列标识错误状态,没有问题标识为空,其他标识相应问题(Err?=(none)/Reinst-required(Status,Err: upercase=bad))
h: 软件包被强制保持,因为有其他软件包依赖需求,无法升级r: Reinst-required,软件包被破坏,可能需要重新安装才能正常使用x: 软件包被破坏,并且被强制保持
几个例子:
ii: 表示系统正常安装了该软件pn: 表示安装了该软件又清除了un: 表示从未安装过该软件iu: 表示安装了该软件,但是未配置rc: 表示该软件已经被删除,但是配置文件还在