一部のパッケージにはProvides:
ヘッダー。たとえば、Debian Wheezyのpostfix
パッケージにはProvides: mail-transport-agent
。
その包み mail-transport-agent
物理的に存在しないものは、「仮想」パッケージと見なされます。
Debianベースのシステムで、特定の仮想パッケージが「インストール」されている(または「提供されている」)場合、どのようにして知ることができますか?すべての「提供されている」仮想パッケージをリストできますか?
ヒント:インストールされているかどうかにかかわらず、既存のすべての仮想パッケージを一覧表示するには、次のようにします:aptitude search "~v"
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
インストールされているパッケージ(存在する場合)のみを一覧表示するには、そのaptitude search '~Pmail-transport-agent ~i'
を作成します。
現在インストールされているパッケージによって提供されるすべての仮想パッケージを一覧表示するには:
aptitude search '~Rprovides:~i ~v'
検索パターンの説明については aptitudeマニュアル を参照してください。
ここでの問題は、他のパッケージによるvirtualパッケージとパッケージprovidedの間に微妙な違いがあることです。
違いは、パッケージは仮想パッケージだけでなく、提供 a リアルパッケージでもよいということです。
とにかく、以下は提供パッケージであるすべてのパッケージを検索し、パッケージ名とそれが提供するパッケージの両方を出力します。
grep-available -sPackage -sProvides -FProvides -e '^.'
特定のパッケージ(mail-transport-agentなど)を提供するパッケージがシステムにインストールされているかどうかを確認するには、次のコマンドを使用します。
grep-status -sPackage -sProvides -FProvides "mail-transport-agent"
apt-cache showpkg <virtual>
を使用して候補パッケージのリストを表示し、次にdpkg -l <canddate> <candidate> ...
を使用して候補のインストールステータスを表示することにより、特定の仮想パッケージの存在を検出できます。
例えば:
$ apt-cache showpkg awk
$ dpkg -l original-awk mawk gawk
ここに完全なプリントアウトがあります:
$ apt-cache showpkg awk
Package: awk
Versions:
Reverse Depends:
base-files,awk
base-files,awk
Dependencies:
Provides:
Reverse Provides:
mawk:i386 1.3.3-17ubuntu2
gawk:i386 1:4.0.1+dfsg-2.1ubuntu2
original-awk 2012-12-20-1
mawk 1.3.3-17ubuntu2
gawk 1:4.0.1+dfsg-2.1ubuntu2
$ dpkg -l original-awk mawk gawk
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 gawk 1:4.0.1+dfsg AMD64 GNU awk, a pattern scanning and p
ii mawk 1.3.3-17ubun AMD64 a pattern scanning and text proce
dpkg-query: no packages found matching original-awk
dpkg
とapt-cache
はaptitude
、grep-available
とgrep-status
よりも低レベルのツールだと思います。より低いレベルのツールを使用すると、特定の要件に応じて、メリットがある場合とない場合があります。