To install one package, it is often necessary to install several others (to
fulfill its dependencies). For instance, if you wish to install the
clanbomber
package, you must also install the
package libclanlib2
. If you remove
clanbomber
again, you probably no longer need the
libclanlib2
package; aptitude will attempt to
detect this and automatically remove the
libclanlib2
package.
It works like this: when you install a package, aptitude will automatically install any other packages on which it depends. These packages are marked as having been “automatically installed”; aptitude will monitor them and remove them when they are no longer depended upon by any manually installed package [10] . They will appear in the preview as “packages being removed because they are no longer used.”
As with any automatic process, there is a potential for things to go haywire. For instance, even if a package was automatically installed to start with, it might turn out to be useful in its own right. You can cancel the “automatic” flag at any time by pressing m; if the package is already being removed, you can use → (+) to cancel the removal and clear the “automatic” flag.
[10] More precisely: they will be removed when there is no path via Depends, PreDepends, or Recommends to them from a manually installed package. If Aptitude::Keep-Suggests is true, a Suggests relationship is also enough to keep a package installed.