dpkg-Debian包管理器

dpkg是基于Debian的Linux系统的包管理器

常用命令

安装

dpkg -i package.deb 安装package

删除

dpkg -r packagedpkg --remove package 删除package软件包,但保留配置文件
dpkg -P packagedpkg --purge package 删除package软件包,且清除配置文件

查询

dpkg -l package-pattern 查看符合pattern的软件包
dpkg -S package-patterndpkg --search package-pattern 在已经安装的软件包中搜索符合pattern的软件包
dpkg -L packagedpkg --listfiles package 查看package软件包的安装目录信息
dpkg -s packagedpkg --status package 查看package软件包的状态信息

dpkg数据库

dpkg -l 查看dpkg数据库

dpkg list

第一列是软件包状态标识符,共三个字符

第一个字符是期望值(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: 表示该软件已经被删除,但是配置文件还在

参考文献