1 つのパッケージをインストールするために、他のパッケージをいくつかインストールする (依存関係を満たす) 必要があることが、しばしばあります。例えば
clanbomber
パッケージをインストールしたい場合、libclanlib2
パッケージもインストールしなければなりません。さらに clanbomber
を削除する場合、libclanlib2
パッケージはおそらくもう必要ないでしょう。aptitude
は libclanlib2
が必要ないことを検出し、libclanlib2
パッケージを自動的に削除します。
このようなパッケージの依存関係の処理は次のような方法で行われます。パッケージをインストールする際に、aptitude は、そのパッケージが依存する他のパッケージをすべて自動的にインストールします。これらのパッケージには「自動的にインストールされた」という印がつけられます。aptitude はそれらを監視し、手動でインストールされたどのパッケージからももうそれらが依存されていない場合に、削除します [10]。依存されなくなったために削除対象となったパッケージは、「もはや使われていないので削除されるパッケージ」としてプレビューに現れます。
あらゆる自動処理と同様、この処理にも不都合になる可能性があります。例えば、最初は自動的にインストールされたパッケージであっても、それ自体で有用になるかもしれません。m を押すと、パッケージについた「自動」フラグをいつでも取り消せます。パッケージが既に削除予定となっている場合、 → (+) を使用すると、その削除を取り消して「自動」フラグを取り除けます。
[10] より正確には、自動的にインストールされたパッケージは、手動でインストールされたパッケージから依存 (Depends)・事前依存 (PreDepends)・推奨 (Recommends) される経路が存在しない場合に削除されます。Aptitude::Keep-Suggests が true の場合は、提案 (Suggests) の依存関係も、パッケージをインストール状態に保つのに充分です。