在 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
dpkg -l
命令列出所有已安装的 Debian 软件包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)