`dpkg -l` 仅显示已安装的包?

`dpkg -l` 仅显示已安装的包?

在 Debian/Ubuntu 上,dpkg可以显示软件包,包括版本和已安装的内容(例如dpkg -l postgresql\*)。但这会显示它所知道的所有软件包,无论是否已安装。

是否可以dpkg只显示已安装包裹?

我尝试过在 Debian testing/bookworm 上使用 dpkg v1.21.8,以及在 Ubuntu 18.04 bionic 上使用 v1.19.0.5

答案1

dpkg本身无法做到这一点,但可以通过dpkg-query和的组合来实现awk

dpkg-query -W -f '${db:Status-Status} ${Package}\n' 'linux-image-[0-9]*' | awk '$1 != "not-installed" {print}'

在 Ask Ubuntu 上查看这个问题: https://askubuntu.com/questions/1330078/limit-output-of-dpkg-query-w-to-installed-packages

答案2

  1. dpkg -l命令列出所有已安装的 Debian 软件包
  2. dpkg -l <pattern> | grep ^ii显示已安装软件包的命令pattern

例如,如果你想列出已安装的软件包gcc*

$ dpkg -l gcc*|grep ^ii
ii  gcc                             4:12.2.0-1   amd64        GNU C compiler
ii  gcc-10                          10.4.0-5     amd64        GNU C compiler
ii  gcc-10-base:amd64               10.4.0-5     amd64        GCC, the GNU Compiler Collection (base package)
ii  gcc-10-multilib                 10.4.0-5     amd64        GNU C compiler (multilib support)
ii  gcc-11                          11.3.0-5     amd64        GNU C compiler
ii  gcc-11-base:amd64               11.3.0-5     amd64        GCC, the GNU Compiler Collection (base package)
ii  gcc-11-multilib                 11.3.0-5     amd64        GNU C compiler (multilib support)
ii  gcc-12                          12.2.0-3     amd64        GNU C compiler
ii  gcc-12-base:amd64               12.2.0-3     amd64        GCC, the GNU Compiler Collection (base package)
ii  gcc-12-multilib                 12.2.0-3     amd64        GNU C compiler (multilib support)
ii  gcc-9-base:amd64                9.5.0-2+b1   amd64        GCC, the GNU Compiler Collection (base package)
ii  gcc-multilib                    4:12.2.0-1   amd64        GNU C compiler (multilib files)

相关内容