命令概述
dpkg-query命令是Debian linux中软件包的查询工具,它从dpkg软件包数据库中查询并显示软件包的信息。
查询软件包时,软件包的名称支持通配符,如tree*将查询所有以tree开头的软件包。
命令格式
用法:dpkg-query [<选项> ...] <命令>
常用选项
命令:
-s|--status <软件包> ... 显示软件包详尽的状态信息。
-p|--print-avail <软件包> ... 显示当前可供安装的版本的详细信息。
-L|--listfiles <软件包> ... 列出所有属于这个(些)软件包的文件。
-l|--list [<表达式> ...] 简要地列出软件包。
-W|--show <表达式> ... 显示软件包的相关信息。
-S|--search <表达式> ... 搜寻拥有该文件(或多个文件)的软件包。
--control-list <软件包> 打印软件包控制文件列表。
--control-show <软件包> <文件>
显示软件包控制文件。
-c|--control-path <软件包> [<文件>]
显示软件包控制文件的路径。
-?, --help 显示本帮助信息。
--version 显示版本信息。
选项:
--admindir=<目录> 使用 <目录> 而非 /var/lib/dpkg。
--load-avail 在 --show 和 --list 之后使用有效文件。
-f|--showformat=<格式串> 令 --show 使用其它的格式输出。
格式串的语法:
格式串是用于显示每一个软件包的字符串。格式串可以包含标准的
脱字符(escape sequences),如 \n (换行)、\r (回车)、或是 \\ (反斜杠)。
还可以通过加入软件包属性的变量引用来反映软件包的相关信息,
要在某些字段引用属性变量的话,可以用这样的语法:${var[;width]}。
字段一般是靠右对齐的,除非它的宽度是负数。若其宽度是负数,
那么字段将会靠左对齐。
参考示例
1、列出软件包简要信息
root@Ubuntu20.04:~# dpkg-query -l sysstat
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)
||/ Name Version Architecture Description
+++-==============-============-============-==================================
ii sysstat 12.2.0-2 amd64 system performance tools for Linux
2、显示已安装包详尽状态信息
root@Ubuntu20.04:~# dpkg-query -s sysstat
Package: sysstat
Status: install ok installed
Priority: optional
Section: admin
Installed-Size: 1488
Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
Architecture: amd64
Version: 12.2.0-2
Depends: lsb-base (>= 3.0-6), ucf (>= 2.003), xz-utils, debconf (>= 0.5) | debconf-2.0, libc6 (>= 2.14), libsensors5 (>= 1:3.5.0)
Recommends: cron | cron-daemon
Suggests: isag
Conffiles:
/etc/cron.d/sysstat 455c3c071b6daabb4e4490828975034c
/etc/cron.daily/sysstat 19b1317e195208eed1a0bcd68be2e637
/etc/init.d/sysstat 222cea8f69c5baad2e2e2189a913eed8
/etc/sysstat/sysstat ca9b91d6a6738aa6f48a7d2b2b8ee774
/etc/sysstat/sysstat.ioconf 1699371117f9393aebb9523c4cbadca8
Description: system performance tools for Linux
The sysstat package contains the following system performance tools:
- sar: collects and reports system activity information;
- iostat: reports CPU utilization and disk I/O statistics;
- tapestat: reports statistics for tapes connected to the system;
- mpstat: reports global and per-processor statistics;
- pidstat: reports statistics for Linux tasks (processes);
- sadf: displays data collected by sar in various formats;
- cifsiostat: reports I/O statistics for CIFS filesystems.
.
The statistics reported by sar deal with I/O transfer rates,
paging activity, process-related activities, interrupts,
network activity, memory and swap space utilization, CPU
utilization, kernel activities and TTY statistics, among
others. Both UP and SMP machines are fully supported.
Original-Maintainer: Robert Luberda <robert@debian.org>
Homepage: http://pagesperso-orange.fr/sebastien.godard/
3、查看软件包安装时安装到系统的文件列表
root@Ubuntu20.04:~# dpkg-query -L sysstat
/.
/etc
/etc/cron.d
/etc/cron.d/sysstat
/etc/cron.daily
/etc/cron.daily/sysstat
/etc/init.d
/etc/init.d/sysstat
/etc/sysstat
/etc/sysstat/sysstat
/etc/sysstat/sysstat.ioconf
/lib
/lib/systemd
/lib/systemd/system
/lib/systemd/system/sysstat.service
/usr
/usr/bin
/usr/bin/cifsiostat
/usr/bin/iostat
/usr/bin/mpstat
/usr/bin/pidstat
/usr/bin/sadf
/usr/bin/sar.sysstat
/usr/bin/tapestat
/usr/lib
/usr/lib/sysstat
.......略
4、列出ubuntu下所安装软件列表
root@Ubuntu20.04:~# dpkg-query -W --showformat='${Package} ${Version}\n'
accountsservice 0.6.55-0ubuntu12~20.04.4
acl 2.2.53-6
adduser 3.118ubuntu2
adwaita-icon-theme 3.36.1-2ubuntu0.20.04.2
........略
5、 列出所有安装的包
root@Ubuntu20.04:~# dpkg-query -l |grep gcc
6、查看软件包的确切状态(是否安装)以及版本号
root@Ubuntu20.04:~# dpkg-query -W -f='${Status} ${Version}\n' tree
install ok installed 1.8.0-1
7、查看某个文件属于哪个软件包所有
root@Ubuntu20.04:~# dpkg-query -S /usr/bin/iostat
sysstat: /usr/bin/iostat