我如何知道 Debian 系统上是否“安装”了虚拟软件包?

Tot*_*tor 16 debian apt dependencies package-management

一些包,有一个Provides:标题。例如,postfixDebian Wheezy 上的软件包有Provides: mail-transport-agent.

mail-transport-agent物理上不存在的包被视为“虚拟”包。

在基于 Debian 的系统上,我如何知道给定的虚拟包是否已“安装”(或“提供”)?我可以列出每个“提供的”虚拟包吗?

提示:要列出每个现有的虚拟包,安装与否,请执行以下操作:aptitude search "~v"

Gil*_*il' 16

列出提供的软件包mail-transport-agent

$ aptitude search '~Pmail-transport-agent'
p   citadel-mta                     - complete and feature-rich groupware server
p   courier-mta                     - Courier mail server - ESMTP daemon        
p   dma                             - lightweight mail transport agent          
p   esmtp-run                       - user configurable relay-only MTA - the reg
p   exim4-daemon-heavy              - Exim MTA (v4) daemon with extended feature
p   exim4-daemon-light              - lightweight Exim MTA (v4) daemon          
p   masqmail                        - mail transport agent for intermittently co
p   msmtp-mta                       - light SMTP client with support for server 
p   nullmailer                      - simple relay-only mail transport agent    
i   postfix                         - High-performance mail transport agent     
p   sendmail-bin                    - powerful, efficient, and scalable Mail Tra
p   ssmtp                           - extremely simple MTA to get mail off the s
p   xmail                           - advanced, fast and reliable ESMTP/POP3 mai
Run Code Online (Sandbox Code Playgroud)

使其aptitude search '~Pmail-transport-agent ~i'仅列出已安装的软件包(如果有)。

列出当前安装的软件包提供的所有虚拟软件包:

aptitude search '~Rprovides:~i ~v'
Run Code Online (Sandbox Code Playgroud)

有关搜索模式的说明,请参阅aptitude 手册


uml*_*ute 11

这里的问题是虚拟包和其他包提供的包之间存在细微差别。

不同之处在于,一个包也可能提供一个真实的包,而不仅仅是一个虚拟的包。

无论如何,以下将搜索提供包的所有包,并打印包名称和它提供的包:

grep-available -sPackage  -sProvides -FProvides -e '^.'
Run Code Online (Sandbox Code Playgroud)

要查找您的系统上是否安装了提供给定软件包的任何软件包(例如 mail-transport-agent),请使用

grep-status -sPackage -sProvides -FProvides "mail-transport-agent"
Run Code Online (Sandbox Code Playgroud)

  • 注意:一旦你安装了 `dctrl-tools` 包,命令 `grep-available` 和 `grep-status` 就可用了。 (3认同)