如何检查是否安装了虚拟包?

Nok*_*oki 7 package-management apt dpkg

在以下问题中,有一个在安装包之前检查包的解决方案:

如何检查我的服务器上是否安装了软件包?

但是,我发现这不适用于Virtual Packages

有没有办法遍历 apt-get 自动选择并检查正确的包名称?

小智 12

除非只有一个提供程序,否则 Apt 不会安装虚拟包。如果另一个包依赖于一个虚拟包,它通常也会命名一个真实的包作为替代(即 build-essential 依赖于“libc6-dev | libc-dev”——第二个是一个虚拟包)。

未安装虚拟包,因此您无法检查它们的状态。您可以使用apt-cache showpkg <pkg-name>查看哪些包提供了虚拟包,然后检查是否安装了其中的任何包。


Flo*_*sch 6

您可以使用grep-status (package dctrl-tools,默认情况下未安装) 来查找所有提供一些虚拟包的已安装包:

$ grep-status -FProvides,Package -sPackage,Provides,Status awk 
Package: mawk
Provides: awk
Status: install ok installed

Package: gawk
Provides: awk
Status: install ok installed
Run Code Online (Sandbox Code Playgroud)