On my netbook, I try to keep the amount of installed software limited. Aptitudes “automatically installed” markers are very helpful here, since they allow you to differentiate between packages that were deliberately installed and packages that were manually marked for installation. I quite often browse through the list of installed packages and recheck those that are not marked as “A”.

However, packages that are “suggested” by some other package (but not “required”) will be kept even when marked as automatically. This is quite sensible: when you deinstall the package that “suggested” them, they will be removed. So this is nice for having optional software also automatically removed.

However sometimes you need the core package but not this optional functionality. Aptitude can help you there, too. Here’s an aptitude filter I used to find some packages for removal:

!?reverse-depends(~i) ~M !?essential

It will display only packages with no direct dependency from another installed package and that are marked as automatically installed (so they must be kept installed because of a weaker dependency.

Some examples of “suggested but not required” packages:

  • Accessibility extensions of Gnome
  • Spelling dictionaries
  • Optional functionality / extensions

Depending on your requirements, you might want to keep some of these and remove others.

Here is also a filter to find packages that you can put on “automatically installed”:

~i !~M ?reverse-depends(~i) !?essential

This will catch “installed but not automatically installed packages, that another installed package depends on”. Note that you should not blindly put all of these to “automatic” mode. For example “logrotate” depends on “cron | anacron | fcron”. If you have both cron and anacron installed, aptitude will consider anacron to be unnecessary (it is - on a system with 24h uptime). So review this list, and see what happens when you set packages to “A”, and reconsider your intentions. If it is a software you want for sure, leave it on manual.