自動的にインストールされたパッケージの管理

1 つのパッケージをインストールするために、他のパッケージをいくつかインストールする (依存関係を満たす) 必要があることが、しばしばあります。例えば clanbomber パッケージをインストールしたい場合、libclanlib2 パッケージもインストールしなければなりません。さらに clanbomber を削除する場合、libclanlib2 パッケージはおそらくもう必要ないでしょう。aptitudelibclanlib2 が必要ないことを検出し、libclanlib2 パッケージを自動的に削除します。

このようなパッケージの依存関係の処理は次のような方法で行われます。パッケージをインストールする際に、aptitude は、そのパッケージが依存する他のパッケージをすべて自動的にインストールします。これらのパッケージには「自動的にインストールされた」という印がつけられます。aptitude はそれらを監視し、手動でインストールされたどのパッケージからももうそれらが依存されていない場合に、削除します [10]。依存されなくなったために削除対象となったパッケージは、「もはや使われていないので削除されるパッケージ」としてプレビューに現れます。

あらゆる自動処理と同様、この処理にも不都合になる可能性があります。例えば、最初は自動的にインストールされたパッケージであっても、それ自体で有用になるかもしれません。m を押すと、パッケージについた「自動」フラグをいつでも取り消せます。パッケージが既に削除予定となっている場合、パッケージインストール (+) を使用すると、その削除を取り消して「自動」フラグを取り除けます。



[10] より正確には、自動的にインストールされたパッケージは、手動でインストールされたパッケージから依存 (Depends)・事前依存 (PreDepends)・推奨 (Recommends) される経路が存在しない場合に削除されます。Aptitude::Keep-Suggests が true の場合は、提案 (Suggests) の依存関係も、パッケージをインストール状態に保つのに充分です。